scrollToRow不使用TextView在tableViewCell上滚动-Swift 4

时间:2019-02-03 22:47:04

标签: scroll textview tableview

我有一个包括4个部分的tableView(该tableView在一个View内,我使它像一个弹出视图一样),并且每个部分都有不同的行。

在上一节(4)中,我有一个TextView,当开始编辑TextView时,我需要滚动tableView,因为键盘覆盖了TextView。

我试图在textViewDidBeginEditing中滚动scrollToRow,因为那是我希望滚动开始的地方:

"<color:none jaja:a>".split(':')

numberOfSections是4,numberOfRows是1,因为我在第4节中有1行,因此,我从numberOfRows和numberOfSections中减去1以创建indexPathToScroll,因为最后一行是[0,3]而不是[1] ,4]。

我在中间/顶部/底部尝试了scrollToRow,并尝试了对或错的动画,什么也没发生,滚动不起作用。

有人知道为什么它不起作用吗?也许我不能在textViewDidBeginEditing中做到这一点?

谢谢!


通过NotificationCenter解决了该问题:

func textViewDidBeginEditing(_ textView: UITextView) {
    let numberOfSections = tableView.numberOfSections
    let numberOfRows = tableView.numberOfRows(inSection: numberOfSections-1)
    let indexPathToScroll = NSIndexPath(row: numberOfRows-1, section: numberOfSections-1)
    self.tableView.scrollToRow(at: indexPathToScroll as IndexPath, at: .middle, animated: false)
}

然后:

   override func viewDidLoad() {
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
    }

0 个答案:

没有答案