【发布时间】: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标签