Swift中UIScrollView与自定义上下滑动手势冲突

今天博主在封装下拉刷新时遇到了这个问题,在给UIScrollView添加UIPanGestureRecognizer时UIScrollView无法滑动了。博主也试了UITableView和UICollectionView,也出了同样的问题。在网上找了很久,终于解决了这个问题,只需要扩展UIScrollView使它遵循UIGestureRecognizerDelegate,并实现其中的一个方法就可以了,代码贴在下面:

extension UIScrollView: UIGestureRecognizerDelegate {
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        if (gestureRecognizer.state != UIGestureRecognizerState.possible) {
            return true
        }
        return false
    }
}

或者将条件判断换成

if (gestureRecognizer.view is UIScrollView)

现在,终于又可以愉快地写代码啦!

发布了45 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/average17/article/details/79182587