【问题标题】:Changing UINavigationBar Font Type while keeping the default size在保持默认大小的同时更改 UINavigationBar 字体类型
【发布时间】:2016-08-10 11:28:27
【问题描述】:

我知道要更改UINavigationBar 的字体,他会这样做

self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "MavenProBold", size: 15)!, NSForegroundColorAttributeName: UIColor.whiteColor()]

Tho,我正在尝试仅更改字体类型,并保持 iOS 默认字体大小(我猜他在设备中是动态的)。 有什么建议吗?

【问题讨论】:

    标签: ios fonts uinavigationcontroller uinavigationbar


    【解决方案1】:

    如果更改字体类型,则必须指定字体大小。通常您必须手动执行此操作。

    如果你想匹配你看到的另一种字体的大小,比如另一个UILabel,你可以这样做:

    CGFloat fontSize = self.label.font.pointSize; // obj-c
    let fontSize = CGFloat(label.font.pointSize) // swift
    

    然后将你设置的字体大小指定为这个。

    更新

    经过深入调查,UINavigationBar 的常用字体大小是 34px,在你的 Xcode 编辑器中是 17。请记住,您可以手动覆盖此视图,但这是默认字体大小。

    【讨论】:

    • 问题是我无法获取导航栏的默认字体值。
    • 所以你可以参考这个:ivomynttinen.com/blog/the-ios-7-design-cheat-sheet 但这是硬编码的,我知道你正在尝试获得一些动态的东西,让我继续寻找。 AFAIK 字体大小是硬编码的,与大小类之间的比例保持一致,但我想仔细检查一下。
    • 我们需要想办法访问标题的UILabel。也许这是要走的路?
    • 我检查了它,但我无法访问具有标准文本标题的情节提要中的标准 UINavigationController 集上的 titleView 属性。我知道您可以使用新视图覆盖它,但看起来您无法访问它的属性。我所知道的是,在所有 iPhone 上,字体大小将保持不变。 iPad 可能会发生变化,但仅此而已。恐怕你必须手动设置它。
    • 我已经做到了:print(self.navigationController?.navigationBar.titleTextAttributes)
    猜你喜欢
    • 2011-03-21
    • 2011-08-26
    • 2012-06-12
    • 2014-09-27
    • 1970-01-01
    • 2020-01-30
    • 2011-12-10
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多