iOS11でnavigationItem.titleViewにセットしたViewの表示位置がずれる
guard let width = navigationController?.navigationBar.frame.size.width, let height = navigationController?.navigationBar.frame.size.height else { return } // NavigationBarのほぼ幅いっぱいに表示する(ただし少し余白はできる) let rect = CGRect(x: 0, y: 0, width: width, height: height) let titleView = MyTitleView(frame: rect) navigationItem.titleView = titleView
NavigationBarの中にViewをセットしていたところで、iOS11ではずれて表示された。
uinavigationcontroller - iOS 11 navigationItem.titleView Width Not Set - Stack Overflow
上記回答にあるように、
View側で intrinsicContentSize を以下のようにオーバーライドすることで、ずれないで表示できた。
override var intrinsicContentSize: CGSize { return UILayoutFittingExpandedSize }