gpt4 book ai didi

ios - 在 UiCollectionView 中处理触摸?

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:55 25 4
gpt4 key购买 nike

我有一个很大的 UICollectionView 占据了屏幕的主要部分,还有一个显示菜单的 UIButton。我想在用户点击屏幕的任何一侧时隐藏菜单,这对我来说很不幸成为 UICollectionView 的任何部分。在其他 View 上尝试了以下代码,它运行良好...但不适用于 UICollectionView。该函数不会被调用。

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {            
hidemenu()
self.view.endEditing(true)
}

问题是什么?感谢您的宝贵时间。

如何在UICollectionView所在的UIViewController中触发touchesBegan

Here is the project.

最佳答案

虽然点击滚动 Controller (如 UIScrollView、UITableView、UICollection 等)不会调用 touchesBegan 方法。因为它们有自己的 selector 方法。要处理这种情况,您需要在 UICollectionView 上创建 UITapGesture。点击 UICollectionView 时,它的选择器方法会调用并执行您想要的任何操作。

这是指导您的链接。如何在 UICollectionView 上创建双击手势。借助于此,您还可以创建单个 Tap 手势。

Collection View + Double Tap Gesture

编辑: 进行以下更改,效果很好。

第 1 步:在 SwipeMenuViewController 中声明 handleTap

func handleTap(sender: UITapGestureRecognizer) {

println("called swipe")

}

第 2 步:创建 SwipeMenuViewController Controller 的全局变量。在 viewDidLoad()

之外
var vc2 = SwipeMenuViewController()

enter image description here

第 3 步:在 viewDidLoad()

中声明 TapGesture
var tap = UITapGestureRecognizer(target: vc2, action : "handleTap:")
tap.numberOfTapsRequired = 1
self.collectionView.addGestureRecognizer(tap)

输出:

调用了滑动

希望对你有帮助。

关于ios - 在 UiCollectionView 中处理触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30120852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com