在 UIPageControl 旁边的 UILabel 上点击手势不起作用

Tap gesture on UILabel beside a UIPageControl not working

我在一个UIPageControl两边各有一个UILabel,如下图:

我发现点击 UIPageControl 点的两侧会进步,即不会在我的箭头上,也不会触发我的方法。但是其他什么都不会改变,所以我在 UIPageControl.

上将 isUserInteractionEnabled 设置为 false

我在上面连接了(通过 UITapGestureRecognizer)另一个 UILabel,它启动了一个很好的方法。 然而 UILabels,在 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) 上方,它发射得很好。

因此变量闭包可以很好地包含许多装饰,但不能包含手势识别器!