【发布时间】:2016-12-27 19:11:10
【问题描述】:
我有一个简单的UITapGestureRecognizer 并在其相应的方法中插入了一个打印语句。以下是我写的代码:
let tap = UITapGestureRecognizer(target: self, action: #selector(self.segmentTapped(sender:)))
tap.numberOfTapsRequired = 1
self.segmentedControl.addGestureRecognizer(tap)
上面的代码在viewDidLoad 方法中执行。
另外,它的目标方法是:
func segmentTapped(sender: UITapGestureRecognizer) {
print("called")
}
该程序存在的问题是,只有当segmentedControl 被点击两次 时,“被调用”一词才会在控制台中打印。如果只是轻按一次,则不会打印出来。我对为什么会发生这种情况感到困惑,因为我已将手势的 numberOfTapsRequired 属性设置为 1。
【问题讨论】:
-
segmentedControl是什么类型?它的名称中包含“控制”这一事实让我认为其他东西可能正在捕捉手势 -
这是因为分段控件有自己的手势来处理您对其部分按钮的点击。
-
Doug,我正在使用一个名为 KMSegmentedControl 的第三方库。图书馆链接:cocoapods.org/pods/KMSegmentedControl
-
如果您想使用该分段控件,那么只需添加目标操作来处理点击。
-
在您提供的链接中,有一个委托“func KMSegmentedControl(selected item: UIButton)”,您可以在其中处理这些点击
标签: swift uitapgesturerecognizer