如何使用UITableViewAutomaticDimension更新单元格的高度?
我在tableViewCell中有一个UITextView
,并使用了这里列出的iOS 8提供的UITableViewAutomaticDimension
方法。
如果用户添加新行到UITextView
,所以textView,单元格高度应该增加,我怎样才能更新高度?
尝试:
cell.layoutIfNeeded() cell.setNeedsUpdateConstraints()
这些不起作用。
如果我重新加载细胞,就像
tableView.reloadRowsAtIndexPaths([iindexPath], withRowAnimation: .None)
这工作,但是我需要处理辞职和显示键盘。 我会避免它。 任何解决方法?
需要添加以下方法:
func textViewDidChange(textView: UITextView) { tableView.beginUpdates() tableView.endUpdates() }
它会更新约束,而无需重新加载tableview
一段时间后, textView
将开始滚动,以增加它的高度,在新的一行你需要实现textViewDidChangeText:
方法,并通过计算文本的高度增加其高度。
要使用UITableViewAutomaticDimension
你需要从上到下添加约束到subviews
,我认为你也应该创build和IBOutlet为textView的高度约束和textViewDidChangeText
方法设置常量值,在这种情况下, tableViewCell
高度会dynamic变化。
- 两个视图多个UIPickerViews单个sockets
- 低内存警告总是导致iPad(第一代)崩溃
- 如何在Swift中使用NSCoding存储从ViewController生成的值
- 如何停止UIViewAnimationOptionRepeat UIViewanimation?
- didShowViewController在viewDidAppear之后没有被调用
- 自动调整UICollectionView标题
- 领域对象缺less除primaryKey之外的所有属性
- 单击第一个ViewController中的button,更改第二个ViewController的标签文本
- 如何在Swift中实现多个Collection视图