我在导航标题栏中添加了一些标签和图像。一切都很好。但是我想用UIButton
覆盖所有内容,但是我无法获得UIButton
来注册任何水龙头。
这是我的视图层次结构:
在所有内容上都启用了用户交互,并且我有一个IBAction
连接到按钮,如下所示:
@IBAction func tapProjectEdit(_ sender: UIButton) {
print("This never fires. :(")
}
我不允许在导航栏中输入UIButton
吗?还有另一种方法可以实现这一目标吗?
答案 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