【问题标题】:How to know textView is scroll to bottom?如何知道 textView 滚动到底部?
【发布时间】:2017-06-26 21:56:13
【问题描述】:

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

现在,我只知道可以像这样使用 scrollViewDelegate 函数:

scrollViewDidEndDecelerating(_scrollView: UIScrollView),

scrollViewWillBeginDragging(_scrollView: UIScrollView),

scrollViewDidEndDragging(_scrollView: UIScrollView, willDecelerate decelerate: 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是滚动到底部吗?

谢谢!

【问题讨论】:

  • 副本在 Objective-C 中,但由于解决方案只是对 scrollOffset 的基本单行计算,因此我将其标记为副本。
  • 非常感谢,它解决了我的问题!
  • @Sneak 也许这个问题的 swift 版本对初学者更友好,我曾经对 OC 代码感到恐惧:)
  • @BrightFuture 把它移植到 Swift 并在这里回答,DanielTing 可以接受它作为答案。我删除了重复的标签。这是 Obj-C 版本:stackoverflow.com/questions/13969970/…,或者使用 Swift 版本更新现有问题 (?)
  • @Sneak 这个问题有一个Swift 标签

标签: ios swift


【解决方案1】:

来自question

你可以使用这个功能:

func scrollViewDidScroll(_ scrollView: UIScrollView) {

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

        print( "View scrolled to the bottom" )

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多