如何在聊天中隐藏动画UITableView在聊天中结束?

时间:2016-08-26 09:35:39

标签: ios objective-c

我正在开发聊天应用程序。当我选择一个特定的聊天列表时,它会打开ChatViewController。我想要的只是屏幕应该直接显示聊天屏幕中的最后一条消息(就像其他聊天应用程序一样)我为此实现了以下代码:

if(chatData.count>1)
{
    NSIndexPath *indexPath =[NSIndexPath indexPathForRow:chatData.count-1 inSection:0];
    [chatTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

但是当显示聊天屏幕时,它显示在最上面几毫秒,然后突然滚动到最后一行。

我想隐藏此动画或进程并直接打开上一条消息。我想要隐藏这个滚动动画。

我试过this

3 个答案:

答案 0 :(得分:0)

所以,问题是你不需要用动画滚动它。

[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];

答案 1 :(得分:0)

viewWillAppear 中尝试以下代码

[tableView reloadData];
int lastRowNumber = [tableView numberOfRowsInSection:0] - 1;
NSIndexPath* ip = [NSIndexPath indexPathForRow:lastRowNumber inSection:0];
[tableView scrollToRowAtIndexPath:ip  atScrollPosition:UITableViewScrollPositionTop animated:NO]

答案 2 :(得分:0)

解决了这个问题.Forgot在这个方法中做动画= NO非常感谢大家.......

  - (void)viewDidLayoutSubviews
{
  [super viewDidLayoutSubviews];

  CGFloat yOffset = 0;
  if (chatTableView.contentSize.height > chatTableView.bounds.size.height) 
  {
     yOffset = chatTableView.contentSize.height - (chatTableView.bounds.size.height-10);
  }

  [chatTableView setContentOffset:CGPointMake(0, yOffset) animated:NO];
}