iOS 13 navigationItem.titleView损坏

时间:2019-09-21 18:24:41

标签: ios swift uinavigationcontroller autolayout uinavigationbar

所以,我有这段代码,直到现在(

navigationItem.titleView = {
    let view = UIView()
    view.backgroundColor = .blue
    view.translatesAutoresizingMaskIntoConstraints = false
    return view
}()

它看起来像这样(左侧为iOS 12,右侧为iOS 13):

iOS 12.2, works fine iOS 13.0, broken

实际上,在动画发生时,它是可见的,但之后消失了。

修改:
如果您在titleView中设置viewDidAppear,则可以使用。但是有一个延迟,不是那么优雅。

这就是我想做的:

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.titleView = {
        let view = UIView()
        view.backgroundColor = .blue
        view.translatesAutoresizingMaskIntoConstraints = false
        return view
    }()
}

但是,如上所述,有效的方法是

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationItem.titleView = {
        let view = UIView()
        view.backgroundColor = .blue
        view.translatesAutoresizingMaskIntoConstraints = false
        return view
    }()
}

0 个答案:

没有答案