tableview直接滚动至最后一行
2017-03-15 15:17
176 查看
类似聊天界面,tableview应该直接显示在最后一行,并且不应该有滚动的出现。
在网上查了很久,直接滚动至最后一行很容易实现,有两种方法比较好。
1. 调用scrollToRowAtIndexPath方法
2. 改变ContentOffset
不过接下来会遇到一个问题,在什么时候调用它们。
第一种方法在viewDidLoad和viewWillAppear中不能调用,因为那个时候cell还没生成,会报错,那么在viewDidAppear中调用是可行的,但这样用户点击进去能看到一个下滑的动作,并不好
第二种方法也一样,在viewDidLoad和viewWillAppear中调用没有效果,只有在viewDidAppear中调用,这样也一样有个下滑的动作。
这个要看上个页面是通过什么方法进入这个controller的,一般是两种方法。
1. 通过segue进来,那么默认就是拉倒了最后一行。
2.通过storyboard初始化viewcontroller然后push,就没有直接拉倒最后一行。我就是用这种方法的,最后的解决办法不是很好,是在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法里添加:
这样只有点进去的时候会执行,此时页面还没有appear,所以没有下滑的动作就显示在了最后一行
在网上查了很久,直接滚动至最后一行很容易实现,有两种方法比较好。
1. 调用scrollToRowAtIndexPath方法
-(void) scrollBottom { if ([self.messageData count]) { //messageData是数据源 NSIndexPath *indexPath=[NSIndexPath indexPathForRow:self.messageData.count-1 inSection:0]; [self.chatTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; } }
2. 改变ContentOffset
self.chatTableView setContentOffset:CGPointMake(0, self.chatTableView.contentSize.height -self.chatTableView.bounds.size.height) animated:YES];
不过接下来会遇到一个问题,在什么时候调用它们。
第一种方法在viewDidLoad和viewWillAppear中不能调用,因为那个时候cell还没生成,会报错,那么在viewDidAppear中调用是可行的,但这样用户点击进去能看到一个下滑的动作,并不好
第二种方法也一样,在viewDidLoad和viewWillAppear中调用没有效果,只有在viewDidAppear中调用,这样也一样有个下滑的动作。
解决方法
最后发现了问题的所在,移动到最后一行只是一个方法而已,点击去滚动条直接在最后一行和这个没有必然的联系。这个要看上个页面是通过什么方法进入这个controller的,一般是两种方法。
1. 通过segue进来,那么默认就是拉倒了最后一行。
2.通过storyboard初始化viewcontroller然后push,就没有直接拉倒最后一行。我就是用这种方法的,最后的解决办法不是很好,是在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个方法里添加:
if (self.isFirst) { [self scrollBottom]; self.isFirst = NO; }
这样只有点进去的时候会执行,此时页面还没有appear,所以没有下滑的动作就显示在了最后一行
相关文章推荐
- tableview直接滚动至最后一行的问题
- tableview直接滚动至最后一行
- IOSTableView 滚动到最后一行或某一行
- iOS TableView 滚动到最后一行
- iOS tableView滚动到最后一行
- ios中怎么判断是否滚动到tableview的最后一行
- IOS 直接选中tableView的最后一行
- 当你的tableView有几行显示不全或者最后一行无法显示,而且无法滑动时
- 实现TextView的垂直滚动,更新文字时自动滚动到最后一行
- Listview嵌套textview最后一行显示不全及超过5行可滚动。
- ios的tabelView滚动最后一行(常用于聊天软件)
- TableView 去掉多余行数、IOS最后一行Cell系统分割线顶头
- Android将logcat输出到屏幕、文件。TextView自动向下滚动、显示最后一行
- Tableview最后一行无法显示或者显示不全的问题IOS
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- tableView滚到最后一行
- Tableview拖拽无法显示到最后一行或几行
- TableView 去掉多余行数、IOS最后一行Cell系统分割线顶头
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?