iOS UITableView scrollToRowAtIndexPath行为不正确

时间:2011-12-13 13:52:31

标签: ios uitableview scroll

UITableView存在问题,尤其是scrollToRowAtIndexPath。这里我们分别设置section-header-height和row-height。稍后,当显示键盘时,我会调整tableview的大小并使用scrollToRowAtIndexPath滚动到当前涉及的单元格。问题是,在尝试3种不同类型的定位后,UITableViewScrollPositionTopUITableViewScrollPositionMiddle错位时只能正确定位UITableViewScrollPositionBottom。这是截图:

UITableViewScrollPositionTop UITableViewScrollPositionMiddle/Bottom

与所示图像类似,顶部定位将行放在顶部,而中间和底部定位放在中间行的大约1行(对于它们两者)。这只发生在这个视图中(它在其他视图上工作正常)。

桌面视图具有固定边距和灵活的宽度/高度(IB中所有标记均为鲜红色)。

我试着检查tableview的原点,它说明了0,0。当我移动origin.y几个像素时,tableview确实向下移动了这个数量,因此这不是由tableview原点引起的。

我在调整大小之前使用此代码来获取indexPath(请注意,这在其他视图中可以正常工作):

NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:self.frame.origin];
//resize the tableview
[tblView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

有关为何这种情况发生变化的想法?

提前致谢。

1 个答案:

答案 0 :(得分:3)

行。现在我知道了这个问题的原因,我想我必须在这里分享,因为我首先要问这里。

这是因为之前的开发人员在xib文件中将UITableView的Scroll View Size的内容插入底部设置为100(我认为默认值应为0)。这张照片显示我在哪里找到了这个属性: enter image description here