scrollToRowAtIndexPath

scrollToRowAtIndexPath

我的UITableView有问题,尤其是scrollToRowAtIndexPath。在这里,我们分别设置section-header-height和row-height。稍后,当显示键盘时,我已调整表格视图的大小并使用scrollToRowAtIndexPath滚动到当前涉及的单元格。问题是,尝试3种不同类型的定位后,仅UITableViewScrollPositionTop正确定位,而UITableViewScrollPositionMiddleUITableViewScrollPositionBottom放错了位置。这是屏幕截图:

像所示的图像一样,顶部位置将行放置在顶部,而中间位置和底部位置放置在中间行的上方大约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];
为什么会发生这种位置变化的任何想法?
提前致谢。

最佳答案

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

这是因为以前的开发人员在xib文件中将UITableView的Scroll View Size的Content Insets Bottom设置为100(我认为默认值应为0)。此图片显示了我在哪里发现此属性:

关于ios - iOS UITableView scrollToRowAtIndexPath行为不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8490322/

10-12 00:38