在navigationItem中居中titleView

时间:2016-12-13 18:25:40

标签: ios swift uinavigationitem cgrect titleview

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

Before After

这是我的代码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有关。 所以我应该参考Screens界限。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果设置为titleView的视图非常宽,则会发生这种情况。添加为titleView的视图仅在宽度大于可用空间时调整大小,在这种情况下,它们会调整大小以填充左侧栏按钮项和右侧之间的空间。

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

如果将container宽度设置为与图像视图匹配(即66.5点),则它应该居中。 :)

(或者相反,如果您不打算添加任何其他视图,则可以将图片视图直接设置为titleView