情节提要中导航栏标题视图中的UIButton和标签

时间:2018-07-31 18:50:09

标签: ios uibutton uinavigationbar uistoryboard uinavigationitem

我在导航标题栏中添加了一些标签和图像。一切都很好。但是我想用UIButton覆盖所有内容,但是我无法获得UIButton来注册任何水龙头。

这是我的视图层次结构:

Nav Bar Views

在所有内容上都启用了用户交互,并且我有一个IBAction连接到按钮,如下所示:

@IBAction func tapProjectEdit(_ sender: UIButton) {
  print("This never fires. :(")
}

我不允许在导航栏中输入UIButton吗?还有另一种方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

我终于想通了。我怀疑UIButton(以及视图中的所有其他内容)没有实际大小,因为导航子视图总是表现得有些滑稽。

因此,我继承了UIView的子类,将该类设置为 View ,并添加了以下内容:

class FancyTitleView: UIView{
  override var intrinsicContentSize: CGSize {
    return UILayoutFittingExpandedSize
  }
}

现在,它可以与常规IBAction(不需要手势识别器)一起使用。

这篇文章帮助我发现了这个问题:custom titleView of navigationItem is not getting tapped on iOS 11