在按钮点按下滚动到tableview底部的动画?

时间:2016-11-23 07:16:04

标签: ios objective-c uitableview

当我的"发送"时,我使用以下代码滚动到我的表格视图的底部。按钮被点击。也就是说,动画似乎是“不稳定的”。即使我已将动画设置为YES。 例如当点击按钮时,我的整个表格视图内容会清除(变白),然后重新出现在我的桌面视图的底部(相对于我正在寻找的平滑滚动动画?)

ViewController.m

- (IBAction)sendReply:(id)sender {

    [self.tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX) animated:YES];

}

4 个答案:

答案 0 :(得分:2)

在按钮操作中调用此scrollTableToBottom方法

条件用于检查是否存在任何行。你可以忽略它并相应地处理

- (void)scrollTableToBottom {
    NSInteger rowNumber = [self. tableView numberOfRowsInSection:0];
    if (rowNumber > 0) {
        [self. tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:rowNumber-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
    }
}

如果您有任何疑问,请与我联系。

快乐的编码。

答案 1 :(得分:1)

我认为你可以使用tableview本身的默认动画

    int lastRowNumber = [tableView numberOfRowsInSection:0] - 1;
    NSIndexPath* ip = [NSIndexPath indexPathForRow:lastRowNumber inSection:0];
    if (ip  > 0) {

    [tableView scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

答案 2 :(得分:1)

找到你的Last indexPath并试试这个

 [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:true];

希望这会有用

答案 3 :(得分:0)

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

检查一下并告诉我