我正在开发聊天应用程序。当我选择一个特定的聊天列表时,它会打开ChatViewController
。我想要的只是屏幕应该直接显示聊天屏幕中的最后一条消息(就像其他聊天应用程序一样)我为此实现了以下代码:
if(chatData.count>1)
{
NSIndexPath *indexPath =[NSIndexPath indexPathForRow:chatData.count-1 inSection:0];
[chatTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
但是当显示聊天屏幕时,它显示在最上面几毫秒,然后突然滚动到最后一行。
我想隐藏此动画或进程并直接打开上一条消息。我想要隐藏这个滚动动画。
我试过this!
答案 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];
}