我想在快速添加评论到项目中实现LinkedIn的Hakawai提及。问题是HKWTextView应该尽可能小,使其框架适合内容,建议的提及列表应在上方弹出,但是我找不到解决方案。
我一直在尝试使用
自动调整HKWTextView的大小。public func textViewDidChange(_ textView: UITextView) {
let fixedWidth = textView.frame.size.width
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
textView.frame.size = CGSize(width: fixedWidth, height: newSize.height)
textView.isScrollEnabled = false
}
但是结果是:
自动调整文本视图大小:
开始输入提及(提及很少的提及):
列出一个提示:
没有textViewDidChange(_ textView: UITextView)
方法的结果与第二个屏幕上的结果相同(建议的提及列表在上面的表格视图下不可见)
有人经历过并设法使其起作用吗?
答案 0 :(得分:0)
请按照以下步骤解决您的问题。
1)创建一个固定高度的TextView。
2)选择“高度常数”,然后显示“ 尺寸检查器” 。
3)将“关系”选择为“ 大于或等于”。
4)在您的控制器文件中实现此代码。
// Tableview Delegate Method
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "NotesCell", for: indexPath) as! NotesCell
cell.txtViewNotes.tag = indexPath.row
cell.txtViewNotes.delegate = self
return cell;
}
// Textview Delegate Method
func textViewDidChange(_ textView: UITextView) {
adjustFrames(textView)
}
// Custom Method
func adjustFrames(_ textView: UITextView) {
let indexPath = IndexPath(row: textView.tag, section: 0)
let cell = yourTableView.cellForRow(at: indexPath) as! NotesCell
UIView.setAnimationsEnabled(false);
self.yourTableView.beginUpdates()
cell.constNoteHeight.constant = textView.contentSize.height
textView.beginFloatingCursor(at: CGPoint.zero)
textView.endFloatingCursor()
self.yourTableView.endUpdates()
UIView.setAnimationsEnabled(true);
}