0

我试图将我的 titleView 放在我的navigationItem. 本地化我的应用程序后,我看到了这种行为:

前 后

这是我的extension代码navigationItem

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 边界。有任何想法吗?

4

1 回答 1

3

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

在本例中,您将container对象设置为 200 磅宽,这比这两个项目的可用空间要宽。

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

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

于 2016-12-13T18:31:19.193 回答