如何解决在调用beginUpdates之后,UITableView setContentOffset无法正常工作
无论键盘何时显示,我都有此功能可将tableview向上移动:
@objc func keyboardWillShow(notification: Notification) {
dispatchQueue.main.async {
let screenScaleFactor: CGFloat = 375 / UIScreen.main.bounds.size.height
self.currentOffset = self.formTableView.contentOffset
let maxY = self.formTableView.contentOffset.y
let offset = CGPoint.init(x: 0,y: maxY + 260.0 * screenScaleFactor)
self.formTableView.setContentOffset(offset,animated: false)
}
}
在didSelectRowAt
中选择时,此代码用于扩展单元格:
case eventForm.rsvpLabelCellIndexPath:
if eventForm.isRSVPPickerShown {
eventForm.isRSVPPickerShown = false
} else {
eventForm.isRSVPPickerShown = true
}
tableView.beginUpdates()
tableView.endUpdates()
但是在调用beginUpdates()
和endUpdates()
setContentOffset
之后,{@ 1}停止工作。未调用beginUpdates()
时,它可以正常工作。如果通过拖动来滚动tableView,它也将再次起作用。
我试图在调用beginUpdates()
之前和之后将contentOffset设置为保存的值。
这基本上是相同的问题tableView.setContentOffset(_,animated:) do not work after beginUpdates()。
但是我正在使用dispatchQueue.main.async
,但仍然无法正常工作。
有什么建议吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。