iOS - UITableView无法滚动到底部

时间:2013-09-09 10:35:18

标签: ios uitableview header scroll scrollto

我正在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;
}

有谁知道为什么?

非常感谢你的帮助

3 个答案:

答案 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)

@Darshan Kunjadiya的回答是对的。  即使我们可以在故事板中实现相同的目标。

选择tableView - &gt;从故事板控件中单击“添加缺失约束”。这将为tableView和View添加约束。

这帮助我解决了这个问题。附上screen_shot供参考。 screen_shot Link