我正在iOS中构建一个聊天应用程序但是我在UITableView上显示所有消息时遇到了一些问题。我希望表格视图在加载时滚动到底部,以便用户在打开应用程序时可以看到最新消息。
为此,我在刷新数据的函数中添加了此代码:
NSIndexPath* ipath = [NSIndexPath indexPathForRow: [self.messageOnTimeline numberOfRowsInSection:0]-1 inSection: 0];
[self.messageOnTimeline scrollToRowAtIndexPath: ipath atScrollPosition: UITableViewScrollPositionTop animated: YES];
这个工作正常,直到我在tableview中添加了一个标题。我添加了以下代码,现在加载应用程序时它不会滚动到底部:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)];
return view;
}
有谁知道为什么?
非常感谢你的帮助
答案 0 :(得分:7)
在您viewDidload
中添加此代码:
目标C
NSIndexPath *myIndexPath = [NSIndexPath indexPathForRow:AddYourLastIndex inSection:0];
[self.tbl_presentation selectRowAtIndexPath:myIndexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
<强>夫特强>
var myIndexPath: NSIndexPath = NSIndexPath.indexPathForRow(AddYourLastIndex, inSection: 0)
self.tbl_presentation.selectRowAtIndexPath(myIndexPath, animated: true, scrollPosition: UITableViewScrollPositionBottom)
或检查this link
我希望这段代码对你有用。
答案 1 :(得分:3)
尝试此代码。它将滚动到tableview的底部
[self.tableview setContentOffset:CGPointMake(0, self.tableview.contentSize.height-self.tableview.frame.size.height) animated:YES];
答案 2 :(得分:0)
选择tableView - &gt;从故事板控件中单击“添加缺失约束”。这将为tableView和View添加约束。
这帮助我解决了这个问题。附上screen_shot供参考。 screen_shot Link