如何在视图出现之前在iPhone上滚动到UITableView的底部?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

我有一个UITableView可变高度的单元格。当视图被推入视图时,我希望表格滚动到底部。

我目前有以下功能

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[log count]-1 inSection:0];
[self.table scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];

log是一个可变数组,其中包含组成每个单元格内容的对象。

上面的代码工作正常,viewDidAppear但是当视图第一次出现然后跳到底部时,这具有显示表格顶部的不良副作用。如果table view可以在出现之前滚动到底部,我更喜欢它。

我试图滚动中viewWillAppearviewDidLoad,但在数据尚未加载到表并且都抛出一个异常,这两种情况。

提问于
用户回答回答于

[table setContentOffset:CGPointMake(0, CGFLOAT_MAX)]会做你想做的事。

用户回答回答于

这是代码:

- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if (self.messagesTableView.contentSize.height > self.messagesTableView.frame.size.height) 
    {
        CGPoint offset = CGPointMake(0, self.messagesTableView.contentSize.height - self.messagesTableView.frame.size.height);
        [self.messagesTableView setContentOffset:offset animated:YES];
    }
}

扫码关注云+社区