在 UIPageControl 旁边的 UILabel 上点击手势不起作用
Tap gesture on UILabel beside a UIPageControl not working
我在一个UIPageControl
两边各有一个UILabel
,如下图:
我发现点击 UIPageControl
点的两侧会进步,即不会在我的箭头上,也不会触发我的方法。但是其他什么都不会改变,所以我在 UIPageControl
.
上将 isUserInteractionEnabled
设置为 false
我在上面连接了(通过 UITapGestureRecognizer
)另一个 UILabel
,它启动了一个很好的方法。
然而 UILabel
s,在 UIPageControl
旁边,将不起作用。注意:我确实将此元素的 isUserInteractionEnabled
设置为 true
。 (我什至暂时将元素更改为 UIButton
,但它也不起作用 - 所以我恢复到我的 UILabel
。)
那么,有没有办法在触发的 UIPageControl
旁边添加一个 UILabel
?或者,可以将不可见的 objects(同时点击 UIPageControl
的左侧或右侧 - 就像我的第二句话)连接到自定义方法吗?
更新:
我添加了另一个单独的模式(相同的标题标签、按钮,但没有 collection 视图和页面控件)。当我按下中间的标签时它也不会响应,但我暂时使用标题标签响应并启动我的方法。
谁能说说为什么?
我解决了这个问题!
我在 class 顶部的闭包块中声明了大多数变量 - 以及 UILabel,如下所示:
let myLabel: UILabel = {
{
let view = UILabel()
view.translatesAutoresizingMaskIntoConstraints = false
view.isUserInteractionEnabled = true
view.textColor = UIColor.blue
return view
}
在这个闭包中,当我将它们移出闭包时,我有 view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(doMyLabelMethod(_:))))
和 view.isUserInteractionEnabled = true
并将它们直接放在 addSubview(myLabel)
上方,它发射得很好。
因此变量闭包可以很好地包含许多装饰,但不能包含手势识别器!
我在一个UIPageControl
两边各有一个UILabel
,如下图:
我发现点击 UIPageControl
点的两侧会进步,即不会在我的箭头上,也不会触发我的方法。但是其他什么都不会改变,所以我在 UIPageControl
.
isUserInteractionEnabled
设置为 false
我在上面连接了(通过 UITapGestureRecognizer
)另一个 UILabel
,它启动了一个很好的方法。
然而 UILabel
s,在 UIPageControl
旁边,将不起作用。注意:我确实将此元素的 isUserInteractionEnabled
设置为 true
。 (我什至暂时将元素更改为 UIButton
,但它也不起作用 - 所以我恢复到我的 UILabel
。)
那么,有没有办法在触发的 UIPageControl
旁边添加一个 UILabel
?或者,可以将不可见的 objects(同时点击 UIPageControl
的左侧或右侧 - 就像我的第二句话)连接到自定义方法吗?
更新:
我添加了另一个单独的模式(相同的标题标签、按钮,但没有 collection 视图和页面控件)。当我按下中间的标签时它也不会响应,但我暂时使用标题标签响应并启动我的方法。
谁能说说为什么?
我解决了这个问题!
我在 class 顶部的闭包块中声明了大多数变量 - 以及 UILabel,如下所示:
let myLabel: UILabel = {
{
let view = UILabel()
view.translatesAutoresizingMaskIntoConstraints = false
view.isUserInteractionEnabled = true
view.textColor = UIColor.blue
return view
}
在这个闭包中,当我将它们移出闭包时,我有 view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(doMyLabelMethod(_:))))
和 view.isUserInteractionEnabled = true
并将它们直接放在 addSubview(myLabel)
上方,它发射得很好。
因此变量闭包可以很好地包含许多装饰,但不能包含手势识别器!