在navigationItem中居中titleView

Posted

技术标签:

【中文标题】在navigationItem中居中titleView【英文标题】:centering titleView in navigationItem 【发布时间】:2016-12-13 18:25:40 【问题描述】:

我正在尝试将我的 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 有关。 所以我应该参考 Screens 边界。有什么想法吗?

【问题讨论】:

您将 imageView 包装在容器中是否有任何具体原因?可以直接将imageView设置为titleView。 【参考方案1】:

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

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

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

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

【讨论】:

尝试直接制作。像魅力一样工作。非常感谢 别担心!很高兴我能帮上忙! :)

以上是关于在navigationItem中居中titleView的主要内容,如果未能解决你的问题,请参考以下文章

iOS:尝试自定义导航栏时出错

无法在导航项 iOS8 的标题视图中居中 UILabel

在 Monotouch 中更改“返回”NavigationItem 文本?

self.navigationItem 在任何类中可用?

在 navigationItem 中停止 animateWithDuration

从 navigationItem 中删除项目以编程方式显示 navigationItems 标题