如何知道textView是否滚动到底部?

时间:2017-02-09 02:51:38

标签: ios swift

我有一个textView,它的文字内容会增加。 我想知道如何设置bool值,如isTextViewScrollToBottom:Bool 当textView滚动到底部时,isTextViewScrollToBottom = true 当textView离开底部时,则isTextViewScrollToBottom = false

现在,我只知道可以使用scrollViewDelegate func,如:

scrollViewDidEndDecelerating(_ scrollView:UIScrollView),

scrollViewWillBeginDragging(_ scrollView:UIScrollView),

scrollViewDidEndDragging(_ scrollView:UIScrollView,willDecelerate减速:Bool)

我试试这个:

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    checkIsScrollToBottom(scrollView)
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    checkIsScrollToBottom(scrollView)
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
   checkIsScrollToBottom(scrollView)
}

fileprivate func checkIsScrollToBottom(_ scrollView: UIScrollView){
    if textViewForChatContent.contentSize.height - scrollView.contentOffset.y == 301 {
        isScrollToBottom = true
        print("isScrollToBottom=\(isScrollToBottom)")
    }else{
        isScrollToBottom = false
        print("isScrollToBottom=\(isScrollToBottom)")
    }
}

但是这个判断并不适用于所有设备。 是有人知道更好的判断,可以知道textView是滚动到底部吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

  

从此question

您可以使用此功能:

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {

        print( "View scrolled to the bottom" )

    }
}