ios - 通过同一触摸在 View 上的手势之间切换

标签 ios swift uicollectionview uigesturerecognizer uipangesturerecognizer

UICollectionView中,我添加了UIPanGestureRecognizer。首先 UIPanGestureRecognizer 被禁用,我想在滚动期间 UICollectionViewcontentOffset.y 达到某个值时启用它。我试图通过以下代码来实现这一目标。但它仅在第二次触摸屏幕时起作用。我想在 contentOffset.y 为 44 时使用手势,而无需松开手指。

 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
    if collectionView.contentOffset.y == CGFloat(44) {
        return false
    }
    return true
}

最佳答案

是的。根据你的逻辑,它只会在第二次触摸时发生。尝试在scrollView委托(delegate)方法中启用或禁用平移手势,如下所示。

func scrollViewDidScroll(scrollView: UIScrollView) {
     if collectionView.contentOffset.y < CGFloat(44) {
        panGesture.enabled = false
    }
    panGesture.enabled = true
}

关于ios - 通过同一触摸在 View 上的手势之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41499732/

相关文章:

ios - 在 iOS 中使用 Core 动画打开纸张动画

swift - 如何检查单元测试中是否释放了无主引用?

ios - 在 WatchKit 中的接口(interface) Controller 之间传递数据

swift - 如何使用此代码向图像添加水印?

swift - 类型 'UICollectionView' 的值没有成员 'beginUpdates' - Swift 3 问题

ios - 为什么我的 UICollectionViewCells 在动画 super View 约束更改时会更改 alpha 值?

ios - 自定义 CollectionViewCell 属性为零

ios - 来自 TableViewController 的奇怪值,其中填充了 JSON 数据

ios - 如何在 Swift 中将按钮图像设置为 nil?

ios - 下载文件导致在 ios 中流式传输的问题