在UILabel上点击手势,UIPageControl旁边没有工作

时间:2018-05-08 19:02:57

标签: swift uilabel uitapgesturerecognizer uipagecontrol

UILabel的两侧都有UIPageControl,如下图所示:

Screen shot

我发现点击UIPageControl点的两侧会进展,即不在我的箭头上而不是触发我的方法。但是没有其他任何改变,所以我在isUserInteractionEnabled上将false设置为UIPageControl

我连接了(通过UITapGestureRecognizer)上面的另一个UILabel,它启动了一个方法。 但是UILabel旁边的UIPageControl不起作用。注意:我在此元素上设置isUserInteractionEnabled true。 (我甚至暂时将元素更改为UIButton,但它也无效 - 所以我又回到了我的UILabel

那么,有没有办法将UILabel添加到UIPageControl被触发的一侧?或者,隐形物体(在点击UIPageControl的左侧或右侧时 - 可以像我的第二句中一样)是否可以连接到自定义方法?

更新

我添加了另一个单独的模式(相同的标题标签,按钮,但没有集合视图,也没有页面控件)。当我在中心按下标签时,它不再响应,但我暂时使用标题标签,它响应并启动我的方法。

谁能说出原因?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题!

我在类的顶部声明了大多数变量 - 以及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) 它被解雇了。

所以变量闭合很好地包含许多敷料,但不包含手势识别器!