关注微信公众号 太平洋学习网 扫描二维码
最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

UITableView scrollToRowAtIndexPath滚动到最后一行的方法

IOS 太平洋学习网 浏览 评论

UITableView的scrollToRowAtIndexPath方法在即时通讯开发中使用非常的广泛,以下例子是我们一个聊天列表只能显示8条数据,但是我们原本是有9条聊天数据的,第9条数据在下面被隐藏了,如图:

QQ20170519-175703.png

当我们打开聊天记录页面加载,或者输入新消息的时候,都是要显示最后一条数据的,如果不这样,我们是看不到自己的最新消息的,如图是我们要达到的效果:

QQ20170519-180108.png

我们需要在加载页面或者输入消息的时候让UITableView自动向上滚动到最后一行,代码如下。

//self.dataSourceArr.count等于9行,如果要显示最后一行第9行,则indexPathForRow的值为8,因为row是从0角标开始的。
//注意:scrollToBottomisAnimated为本人自定义方法,需要你根据情况调用
- (void)scrollToBottomisAnimated:(BOOL)isAnimated {
    if (self.dataSourceArr.count == 0) {
        return;
    }
    double delayInSeconds = 0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:self.dataSourceArr.count-1 inSection:0];
        [self.tableView scrollToRowAtIndexPath:lastIndex atScrollPosition:UITableViewScrollPositionBottom animated:isAnimated];
    });
}


来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/object-c_ios/2017/0519/106.html

    与本文相关的文章