简介
在tableView中,我们一般会用到scrollToRow这个来控制tableView滚到指定的某一行。一般写法如下所示
// MARK: 滚到底部
func scrollToBottom(animated: Bool = false) {
if dataArr.count > 0 {
tableView.scrollToRow(at: IndexPath(row: dataArr.count - 1, section: 0), at: .bottom, animated: animated)
}
}
情况
今天鄙人使用SnapKit来布局cell,然后用scrollToRow来滚到底部就遇到了一个很奇葩的现象。
我设置了在键盘弹出后聊天消息列表会自动滚到底部。
1.随便输入一条消息,点发送后,在聊天消息列表中并没有滚到最新消息那一行。
2.退出键盘不做任何操作再打开键盘也是滚到刚才那里(即最新消息的上一条所在位置)
3.只有在退出键盘后把聊天消息列表的消息向上拉一点距离露出最新消息所在的cell之后,再点击才有用