Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableView滚动条反弹回顶部_Ios_Objective C_Uitableview_Uiviewcontroller - Fatal编程技术网

Ios UITableView滚动条反弹回顶部

Ios UITableView滚动条反弹回顶部,ios,objective-c,uitableview,uiviewcontroller,Ios,Objective C,Uitableview,Uiviewcontroller,关于StackOverflow,我问了很多不同的问题,但我就是不知道这里出了什么问题。 我有一个视图控制器,它从JSON接收数据,创建一个数组,然后构建一个具有固定高度的UITableView。 问题是我无法滚动到底部。它只是反弹回来 - (UITableViewCell* )tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *cellIdenti

关于StackOverflow,我问了很多不同的问题,但我就是不知道这里出了什么问题。 我有一个视图控制器,它从JSON接收数据,创建一个数组,然后构建一个具有固定高度的UITableView。 问题是我无法滚动到底部。它只是反弹回来

- (UITableViewCell* )tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *cellIdentifier = @"SettingsCell";
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  if (cell == nil)
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

  [cell.detailTextLabel setNumberOfLines:2];

  NSDictionary* place = [_placesData objectAtIndex:indexPath.row];
  [cell.textLabel setText:[place valueForKey:@"nome"]];
  [cell.detailTextLabel setText:[place valueForKey:@"endereco"]];
  [cell.detailTextLabel setLineBreakMode:NSLineBreakByWordWrapping];
  [cell.detailTextLabel sizeToFit];
  UIImage* originalImage = [UIImage imageNamed:@"encontre.png"];
  UIImage* resized = [UIImage imageWithCGImage:[originalImage CGImage]scale:(originalImage.scale * 1.8) orientation:(originalImage.imageOrientation)];
  cell.imageView.image=resized;
  cell.textLabel.font = [UIFont fontWithName:@"GillSans" size:17];
  cell.textLabel.textColor = [UIColor whiteColor];
  cell.detailTextLabel.font = [UIFont fontWithName:@"GillSans-Light" size:17];

  self.tableView.scrollEnabled=YES;
  self.tableView.bounces=YES;
  [self.tableView setAlwaysBounceVertical:YES];
  return cell;
}
我不知道还能做什么。已尝试手动设置
contentSize.height
,在视图控制器上几乎每段代码上强制
反弹
滚动启用


尊敬。

您是否可以签入ViewController的xib,选择tableView并单击右菜单中的“大小检查”,然后在“iOS 6/7增量”中更改: 你可以把-20的高度用胶带粘起来


我认为问题在于ios7和iOS 6的适配。您是否可以签入ViewController的xib,选择tableView并单击右菜单中的“大小检查”,然后在“iOS 6/7增量”中更改: 你可以把-20的高度用胶带粘起来


我认为问题出在ios7和ios6的适应上,如果有人遇到同样的问题的话,我只是设法解决了这个问题

我所做的是,在UiTableView的大小检查器中,我手动将“行高度”设置为70(我使用的确切大小)


在这之后,一切都很有魅力。但是,如果有人能对这里真正发生的事情给出一个全面的解释,那就太好了。

如果有人遇到同样的问题,那就设法解决了

我所做的是,在UiTableView的大小检查器中,我手动将“行高度”设置为70(我使用的确切大小)


在这之后,一切都很有魅力。但是,如果有人能全面解释这里到底发生了什么,那就太好了。

UITableView的工作方式是,它需要知道每一行的高度,以便能够计算其大小

默认行为是假设每行高度为44px。这显然不是你的情况,因为你说它是70像素。这就是为什么你必须改变它,以便能够一直向下滚动

例如,假设您有10行。使用默认的行高,您的表视图只能向下滚动到10*44=440px,从而获得反弹效果。
通过将行高设置为70px,您的tableview现在将下降到10*70=700px

UITableView的工作方式是,它需要知道每一行的高度,以便能够计算其大小

默认行为是假设每行高度为44px。这显然不是你的情况,因为你说它是70像素。这就是为什么你必须改变它,以便能够一直向下滚动

例如,假设您有10行。使用默认的行高,您的表视图只能向下滚动到10*44=440px,从而获得反弹效果。
通过将行高设置为70px,您的tableview现在将下降到10*70=700px,我刚才遇到了同样的问题

我的解决方案是在重新加载表数据之前更新contentSize

tableViewOffre.contentSize = CGSizeMake(tableViewOffre.frame.size.width, [app.offres count] * 105);
其中105是我的行高


我认为这不是解决这个问题的最好办法(我想这是一个相当肮脏的办法),但这是唯一找到的解决办法。

我也遇到了同样的问题

我的解决方案是在重新加载表数据之前更新contentSize

tableViewOffre.contentSize = CGSizeMake(tableViewOffre.frame.size.width, [app.offres count] * 105);
其中105是我的行高


我认为这不是解决问题的最佳方法(我想这是一种非常肮脏的方法),但它是找到的唯一解决方案。

尝试实现
UITableViewDelegate
方法
tableView:heightforrowatinexpath:
,不要让它自动分配(即
sizeToFit
)<代码>UITableView如果您不是非常具体,并且没有覆盖某些方法,则可能会非常不可预测。
在调用
[tableView reloadData]
后,我遇到了一个tableView自动向上滚动的独特问题;这个问题是独一无二的,因为它只发生在iPadMini和iOS8上,其他所有设备和操作系统都正常工作。希望它能帮助某人……

尝试实现
UITableViewDelegate
方法
tableView:heightForRowAtIndexPath:
,不要让它自动分配(即
sizeToFit
)<代码>UITableView如果您不是非常具体,并且没有覆盖某些方法,则可能会非常不可预测。
在调用
[tableView reloadData]
后,我遇到了一个tableView自动向上滚动的独特问题;这个问题是独一无二的,因为它只发生在iPadMini和iOS8上,其他所有设备和操作系统都正常工作。希望它能帮助某人…

我也遇到过同样的问题。在我的情况下,我会将tableview拖到一个自定义视图控制器,该控制器由一个推送序列显示。如果tableview中显示的数据量超过某个数字,则我无法触摸tableview底部的单元格

已经尝试了很多方法:设置表视图的框架/内容大小,但没有一种方法对我有效。最后,我找到了根本原因,并用一种简单的方法解决了它(尽管不是很优雅)

首先,根本原因是:IB创建的表视图的宽度大于其父视图控制器的宽度。因此,任何超出视图范围的单元格都不会被触及

因此,解决方案很简单:转到情节提要,调整表视图的宽度,使其小于父视图的宽度。似乎如果一个表视图是由情节提要创建的,则无法通过代码更改其框架。这就是我到目前为止发现的。我想这是故事板的一个缺陷


帮助它对其他人有用。

我也遇到过同样的问题。在我的情况下,我会将一个tableview拖到一个自定义视图控制器,该控制器由一个推送序列显示。如果tableview中显示的数据量超过某个数字,那么我就不能触摸tableview底部的单元格

已经尝试了很多方法:设置表视图的框架/内容大小,但没有一种方法适合我