如何有一个UIScrollView滚动和手势识别器?
我在UIScrollView上有一个手势识别器,但是它几乎不会被调用,因为UIScrollView吃掉所有的手势。
我部分解决了这个问题: [scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipe];
但是,这一行导致我的识别器总是被接受(所需的行为),滚动视图不滚动。
也就是说,当您滚动时,识别器将被接受,但视图不会滚动。
我怎样才能解决这个问题呢,还是有其他解决scheme?
谢谢!
制作UIScrollView
的子类。 在你的新子类中添加这个方法
- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer { return YES; }
让你的scrollView类到你的新的scrollview子类。
Swift方法,
需要将UIGestureRecognizerDelegate添加到您的类中:
class ViewController: UIViewController, UIGestureRecognizerDelegate {
需要将其代理设置为self:
override func viewDidLoad() { super.viewDidLoad() var scrollView = UIScrollView(frame: self.view.frame) scrollView.delegate = self }
在你的class级方法中添加这个部分来激活同时的手势:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { return true }