如何在textView滚动期间隐藏UIButton

时间:2017-06-22 08:56:09

标签: ios swift swift3 uitextview

我正在创建一个iOS应用,其中包含UITextView下的详细文字。我在if(detailDescriptionTextView.isScrollEnabled == true) {my button.isHidden = true }旁边的视图中添加了一个分享按钮。我希望在用户开始滚动时隐藏按钮,并在未检测到滚动时返回。

我做的是这个...... {{1}}

上面的代码完全隐藏了按钮,因为默认情况下scrollview处于启用状态。那我该怎么办?

2 个答案:

答案 0 :(得分:4)

UITextView继承UIScrollView,您可以使用UIScrollViewDelegate方法来实现此目的。您只需设置UITextView的委托并实施以下UIScrollViewDelegate的方法,然后您就可以了。

func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
    if yourTextView = scrollView {
        yourButton.isHidden = true 
    }
}

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    if yourTextView = scrollView {
        yourButton.isHidden = false
    }
}

答案 1 :(得分:1)

UITextView是一个UIScrollView子类。因此,在使用UITextView时,您使用的UIScrollView委托方法也可用。

你应该使用scrollViewDidScroll来检测滚动

 func scrollViewDidScroll(_ scrollView: UIScrollView) {
    button.isHidden = true
}

您可以使用scrollViewDidEndDecelerating。它会在textView停止滚动时调用。

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    button.isHidden = false
}