我有一个UITableView
,里面有30个单元格。当我添加一个新单元格时,我成功地使用了滚动索引方法,但是在视图加载时调用时它几乎不起作用。当在视图didload中调用它时,它会滚动到倒数第二个单元格而不是最后一个单元格,而最后一个单元格仍然隐藏在视图之外。在我调用滚动的那一点上,数组的最后一个位置肯定有一个对象,这很奇怪。
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[myMatch.chat count]-1 inSection:0];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
答案 0 :(得分:3)
使用 -
[tableView setContentInset:UIEdgeInsetsMake(0, 0, bottomSpace, 0)];
UIEdgeInsetsMake
有四个参数 - top
,left
,bottom
,right
。
答案 1 :(得分:0)
Michaela,我想以三种可能的方式思考:
答案 2 :(得分:0)
从viewDidAppear:
调用时功能是否正常?如果是这样,它可能与调用viewDidLoad
后调整大小的视图有关。
请参阅:Why am I having to manually set my view's frame in viewDidLoad?
您是否可以在iPhone 5的界面构建器中设置视图并在iPhone 4上查看这些结果?我的猜测是边界(显示的tableview的实际部分)在viewDidLoad
中设置,然后通过Springs和Struts或Autolayout从原始大小修改框架。我相信,界限总是从底部被推高,所以这可能会掩盖你最后一个细胞。
您可以NSLog(NSStringFromCGRect(self.view.frame));
和viewDidAppear
中的viewDidLoad
对此进行测试。如果它们不同,框架会调整大小,并在滚动到底部之后覆盖最后一个项目。