2011-12-13 29 views
1

我遇到了UITableView问题,特别是scrollToRowAtIndexPath。这里我们分别设置一个section-header-height和row-height。稍后,当显示键盘时,我调整了tableview的大小并使用scrollToRowAtIndexPath滚动到当前涉及的单元格。问题是,在尝试3种不同类型的定位之后,只有UITableViewScrollPositionTop被正确定位,而UITableViewScrollPositionMiddleUITableViewScrollPositionBottom被错置。我这里还有截图:iOS UITableView scrollToRowAtIndexPath行为不正确

UITableViewScrollPositionTopUITableViewScrollPositionMiddle/Bottom

象中所示的图像中,顶部定位把排在顶部,而中部和底部定位在放大约1行了中间行的(对于)。这只发生在这个视图(它在其他视图上工作正常)。

tableview有固定的边距和灵活的宽度/高度(由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]; 

为什么是这个位置换档发生的任何想法?

在此先感谢。

回答

3

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

这是因为之前的开发人员在xib文件中将UITableView的Scroll View Size的滚动视图大小的内容底部设置为100(我认为默认值应该是0)。此图片显示我在哪里找到此属性: enter image description here