首页 文章

UITextView在UITableViewCell中如何滚动表视图以在键入时保持光标可见

提问于
浏览
4

我有一个包含UITextView的自定义UITableViewCell . 细胞相当大 . 如何自动滚动表格以确保当前选择点始终可见?

请注意,UITextView是单元格的大小,因此它不会自动进行自动滚动 .

我可以在selectedTextRange上调用firstRectForRange,但是如果插入点在最后,则不起作用(对于CGRect,你得到inf,inf,0,0) . 如果我有矩形,我可以计算表中的偏移量并调整其滚动内容偏移量 . 有没有一个很好的方法来做到这一点,或者只是在弄乱contentOffset?

2 回答

  • 1

    在textviewdidchange中使用它

    if let confirmedTextViewCursorPosition = textView.selectedTextRange?.end {
    
                let caretPosition = textView.caretRect(for: confirmedTextViewCursorPosition)
                var textViewActualPosition = tableView.convert(caretPosition, from: textView.superview?.superview)
                textViewActualPosition.origin.y += 20.0 // give the actual padding of textview inside the cell
                tableView.scrollRectToVisible(textViewActualPosition, animated: false)
    
            }
    
  • 2

    运气好吗?我在完全相同的情况下遇到了麻烦 . 我目前正在做的是通过使用获得插入位置的矩形

    [textView caretRectForPosition:textView.selectedTextRange.end]
    

    然后尝试从中计算

    convertRect: fromView:
    

相关问题