我想实现LinkedIn的Hakawai在向项目快速添加评论中提到的功能。问题是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)方法,则结果与第2个屏幕上的结果相同(建议的提及列表在上表视图下不可见)
有没有人经历过这种情况并设法使之发挥作用?

最佳答案

按照这些步骤来解决你的问题。
1)创建一个文本视图集固定高度。
ios - Hakawai自动调整大小HKWTextView-LMLPHP
2)选择“高度常量”并转到“显示尺寸检查器”。
3)选择关系大于或等于。
ios - Hakawai自动调整大小HKWTextView-LMLPHP
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);

}

关于ios - Hakawai自动调整大小HKWTextView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56473496/

10-13 02:47