在 navigationItem 中居中 titleView

centering titleView in navigationItem

我试图将我的 titleView 置于 navigationItem 的中心。 本地化我的应用程序后,我看到了这种行为:

这是我的代码,作为 extensionnavigationItem:

extension UINavigationItem{
func makeImg(){


    let container = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 40))
    let logo = UIImage(named: "Rookie")
    let imageView = UIImageView(frame: CGRect(x: 66.75, y: 7.25, width: 66.5, height: 25.5))
    imageView.image = logo
    imageView.layer.masksToBounds = true
    imageView.clipsToBounds = true


    container.addSubview(imageView)
    self.titleView = container


}

}

我觉得跟我的navigationItem中的superView有关系。 所以我应该参考屏幕边界。有什么想法吗?

如果设置为 titleView 的视图非常宽,就会发生这种情况。添加为 titleView 的视图只有在宽度大于可用 space 时才会调整大小,在这种情况下,它们会调整大小以填充左栏按钮项和右边.

在这种情况下,您将 container 对象设置为 200 点宽,这比这两个项目的可用 space 宽。

如果您设置 container 宽度以匹配图像视图(即 66.5 点),那么它应该居中。 :)

(或者反过来,如果你不打算添加任何其他视图,可以直接将图像视图设置为titleView