检测TextView滚动以在Swift 3.0中显示按钮

Swi*_*ter 5 uiscrollview uitextview swift

我在UIView中有一个TextView和一个隐藏按钮,我试图检测用户何时向下滚动到一长串文本的底部,并在它们到达底部时显示隐藏按钮.我看过一些关于如何使用scrollViewDidScroll在Obj-C中完成它的旧帖子,但不确定如何使用swift,或者如何使用TextView而不是ScrollView.任何帮助都会很棒,因为我没有走得很远.

到目前为止,这是我试图将obj-c帖子翻译成swift,但它对我没用,事实上我甚至不确定函数何时被调用:

 import UIKit

 class MainVC: UIViewController, UIScrollViewDelegate {

    @IBOutlet var textView: UIScrollView!
    @IBOutlet var button: UIButton!

    override func viewDidLoad() {

        super.viewDidLoad()

        textView.delegate = self


    }

   func scrollViewDidScroll(textV: UIScrollView) {

        if (textV.contentOffset.y >= textV.contentSize.height - textV.frame.size.height)
        {
            button.isHidden = false
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的任何帮助:)

Mak*_*nko 10

UITextView是您的子类,UIScrollView如果您查看声明,您将看到它是UIScrollViewDelegate默认情况下,因此您可以删除UIScrollViewDelegate控制器的声明.相反,让你的控制器UITextViewDelegate允许它调用scrollViewDidScrollMethod.

class ViewController: UIViewController, UITextViewDelegate {

    @IBOutlet weak var textView: UITextView! {
        didSet {
            textView.delegate = self
        }
    }
    @IBOutlet weak var button: UIButton! {
        didSet {
            button.hidden = true
        }
    }

    func scrollViewDidScroll(scrollView: UIScrollView) {
        button.hidden = scrollView.contentOffset.y + scrollView.bounds.height < scrollView.contentSize.height
    }
}
Run Code Online (Sandbox Code Playgroud)