我有一个包含大量单元格的UITableView。在具有UITextField的单元格上,如果键盘将隐藏文本字段,则滚动表格。对于一些细胞,我将细胞高度的变化添加到滚动。 这在表格的开头和中间工作正常,但如果有问题的单元格位于表格的底部,我会得到一些奇怪的跳跃和细胞消失。 在用户完成编辑之后,单元格的高度变回正常并且消失的单元格重新出现,但是表格向上滚动了一点。 我现在的问题是如何摆脱细胞的跳跃和消失?
这是我的代码:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if fieldIndex != [-99, -99] {
if indexPath.section == fieldIndex[0] && indexPath.row == fieldIndex[1] {
fieldIndex = [-99, -99]
return 220.0
}
}
return 80.0
}
func keyboardWillBeShown(_ sender: Notification) {
let info: NSDictionary = (sender as NSNotification).userInfo! as NSDictionary
let value: NSValue = info.value(forKey: UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.cgRectValue.size
let height = toolBar.frame.height
let contentInset: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height + toolBar.frame.height + 60, 0.0)
originalIntersect = tableView.contentInset
tableView.contentInset = contentInset
tableView.scrollIndicatorInsets = contentInset
var aRect: CGRect = self.view.frame
aRect.size.height -= keyboardSize.height
}
func keyboardWillBeHidden(_ sender: Notification) {
let insets: UIEdgeInsets = UIEdgeInsetsMake(self.tableView.contentInset.top, 0, 0, 0)
tableView.contentInset = originalIntersect
tableView.scrollIndicatorInsets = originalIntersect
}
如果还有其他代码,您需要查看以帮助提问。
问候并谢谢 Adarkas