在iOS 8自动高度的单元格内输入时,UITableView跳转到endUpdates上

Can*_*ğlu 23 uitableview ios ios8

我正在使用iOS 8自我调整单元(tableView.rowHeight = UITableViewAutomaticDimensiontableView:estimatedHeightForRowAtIndexPath:)组合.它很有效,直到我开始在单元格内输入内容.当我正在键入时,我正在调用beginUpdates/ endUpdatespair来调整我的单元格大小(文本视图随着我的输入而增长,并且在我删除时缩小)但是每次调用都会导致跳转到表格视图的顶部.如果我删除beginUpdates/ endUpdatespair然后它不会跳转但我的单元格不会在我键入时调整大小.

以下是该问题的演示:

在此输入图像描述

如何在键入而不跳到表格视图的顶部时,如何让我的单元格正确调整大小?我只针对iOS> = 8,所以我不需要任何iOS 7兼容性.

小智 15

我正在为聊天应用程序实现完全相同的功能,并获得与您现在获得的相同的问题.这件事帮助了我.如果这对您有用,请告诉我.

UIView.setAnimationsEnabled(false)
tableView.beginUpdates()
cell.textView.scrollRangeToVisible(NSMakeRange(cell.textView.text.characters.count-1, 0))
tableView.endUpdates()
UIView.setAnimationsEnabled(true)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: false)
Run Code Online (Sandbox Code Playgroud)


小智 0

您在文本上重置表视图单元格的框架是否开始编辑?如果是,那么您有时可以检查变量,因为内存分配变量会被释放。使用断点并检查不能根据您的要求更改的变量值。