美文网首页iOS开发技术UITableView
UITableView在视图出现时像微信和QQ一样滚动到底部

UITableView在视图出现时像微信和QQ一样滚动到底部

作者: 杀不死bill | 来源:发表于2016-09-29 16:35 被阅读155次

    直接在UITableView中加入代码,可以滚动到底部

    if (self.tableView.contentSize.height >kScreen_Height) {
                [self.tableView setContentOffset:CGPointMake(0, self.tableView.contentSize.height -self.tableView.bounds.size.height) animated:NO];
            }
    

    但是放在 viewDidLoad: 中table的datasoure还没有加载完,没有效果,放在 viewDidAppear:中的时候就会出现闪一下的情况,很影响用户体验。
    然后就想到如果table加载完了以后马上滚动就不会有闪一下的视觉差,在文档中没有找到tableview加载完以后的响应,于是想到我把[self.table reloadData];然后监测raloadData完了以后在滚动,终于实现了效果。

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        //其他代码
    
        //滚动到底部代码
        [self.tableView reloadData];//这里会自动设置tableView layoutIfNeeded为YES,意味着将会在runloop结束时重绘tableView,并将重绘任务提交到主队列
        dispatch_async(dispatch_get_main_queue(),^{
            //由于mainQueue是串行的,执行到这里说明上一个提交到mainQueue的task已经完成了(即tableView重绘)
            if (self.tableView.contentSize.height >kScreen_Height) {
                [self.tableView setContentOffset:CGPointMake(0, self.tableView.contentSize.height -self.tableView.bounds.size.height) animated:NO];
            }
        });
    }
    

    问题解决

    相关文章

      网友评论

      本文标题:UITableView在视图出现时像微信和QQ一样滚动到底部

      本文链接:https://www.haomeiwen.com/subject/datlyttx.html