在iOS 11上没有获取navigationItem的自定义titleView

Fay*_*007 2 ios swift3 ios11

我正在使用自定义titleView并将其分配给navigationItem titleView.在iOS 11之前它一直运行良好.由于更新它的位置错误地放在中心位置,因为它原来是在更左边.除此之外,用户交互无效.

titleView = Bundle.main.loadNibNamed("SomeNib", owner: self, options: nil)?.first as? SomeNib
navigationItem.titleView = titleView
Run Code Online (Sandbox Code Playgroud)

titleView只是一个通常的笔尖.

然后启用互动:

if let titleView = self.navigationItem.titleView {
            let tap = UITapGestureRecognizer(target: self, action: #selector(onTitleViewTap))
            titleView.addGestureRecognizer(tap)
            titleView.isUserInteractionEnabled = true
        }
Run Code Online (Sandbox Code Playgroud)

Pun*_*rma 12

在iOS 11中,titleView与Autolayout一起设置.因此,titleView的大小是您在titleView中设置的视图的固有大小.

视图类中的此代码(您将其设置为titleView)应该有助于:

override var intrinsicContentSize: CGSize {
    return UILayoutFittingExpandedSize
} 
Run Code Online (Sandbox Code Playgroud)