在UITextView上检测向下滑动向下滚动到顶部

时间:2015-02-09 18:38:37

标签: ios swift scroll uitextview uiswipegesturerecognizer

我占据了整个屏幕UITextView。当文本视图滚动到顶部时,我想在用户向下滑动时移动它。

问题:

  • 我尝试在UISwipeGestureRecognizer上添加textView,但手势识别器和textView的滚动之间存在冲突。仅当textView中的内容不足以需要滚动时才会有效(所以当textView 静态时)
  • 我尝试使用scrollViewWillBeginDragging方法但是当textView 静态时没有调用此方法(因为没有什么可滚动,有意义)。此外,在此方法中,我不知道用户是向上还是向下滚动

有解决方法吗?

由于

1 个答案:

答案 0 :(得分:1)

是的,有一个解决方案。您需要确保您的ViewController是UISwipeGestureRecognizer的委托,然后从UIGestureRecognizerDelegate协议实现该方法。如果您想要微调您希望识别器彼此竞争的方式,协议中还有其他几种方法。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}

然后,您只需检查是否位于scrollView的顶部。

    @IBAction func SwipeDown(sender: UISwipeGestureRecognizer) {
        println("Swipe Down Detected")
        if textView.contentOffset.y < 0 {
        println("And we were at (or above) the top of the text")
    }
}