【发布时间】:2017-10-19 00:04:57
【问题描述】:
我创建了一个 UITextView,它在 UITableViewCell 中作为人员类型动态调整大小。
在 iOS 10 上,UITextView 的光标会自动跟随,只需要很少的代码。
在UITextViewDelegate 方法textViewDidChange: 中,我使用了这段代码,它更新了文本视图的大小,没有任何跳转。
func textViewDidChange(_ textView: UITextView) {
UIView.setAnimationsEnabled(false)
self.tableView.beginUpdates()
self.tableView.endUpdates()
UIView.setAnimationsEnabled(true)
self.tableView.contentOffset = currentOffset
}
在 iOS 11 中,这不再有效,当我键入时,光标会在键盘下消失。请注意,当键盘出现时,我不需要任何更改。
我知道 iOS 11 中与内容插入的工作方式有关的更改,但一直无法弄清楚我需要进行哪些更改才能使其正常工作。
我应该在哪里进行这些更改来修复它?
-- 更新--
事实证明,删除所有这些代码可以解决我在 iOS 11 中的问题,并且 iOS 11 句柄在我自动键入时向下滚动以跟随光标而不会出现任何问题。
我剩下的一个问题是,在 UITextView 停止更新 UITextViews 大小之前,我最多只能在 UITextView 中输入 28 行文本。
【问题讨论】:
-
你把这个textView的行数设置为零了吗?
-
你能提供一个minimal working example吗?
-
尝试过 textView.textContainer.maximumNumberOfLines = 0。这不会限制行数
-
@BrunoFulberWide 我不认为这是 IB 中的一个选项。
-
@ThanhPham 除了上面的代码,其余的是一个 UITableView,其中一个单元格中有一个 UITextView。 UITextView 被固定到具有大于或等于高度约束的单元格侧面。除了您在上面看到的之外,没有其他自定义代码,因此我无需提供任何其他内容。
标签: ios swift uitableview autolayout uitextview