【问题标题】:Custom system font for a UIBarButtonItem in a toolbar for LaunchScreen.xibLaunchScreen.xib 工具栏中的 UIBarButtonItem 的自定义系统字体
【发布时间】:2015-03-22 15:47:24
【问题描述】:

我在使用外观 API 设置的应用程序中使用 Ave​​nir Next 字体(由 iOS 提供)。我希望我的 LaunchScreen.xib 也可以使用它,以便从启动屏幕到初始视图控制器的过渡顺利。

我可以使用 Ave​​nir Next 作为 Interface Builder 中的导航栏,但我找不到在 UIToolbar 中为 UIBarButtonItem 设置字体的方法。 Ave​​nir Next 字体在启动屏幕期间正确显示在导航栏中。

由于启动屏幕需要它,我显然无法通过编程设置字体来解决这个问题,必须在 Interface Builder 中完成。

有没有办法做到这一点,也许是通过手动编辑 LaunchScreen.xib 文件?

【问题讨论】:

  • 启动时字体是否显示在导航栏上?问是因为我认为启动屏幕是在要显示的应用程序之外启动的,并且无法访问应用程序的其他资源(例如自定义字体)
  • 是的,它显示正确。我编辑了我的问题以使其清楚。
  • 使用包含 UIButton 的 UIBarButtonItem 是否适合您?因为您可以随后编辑 UIButton 字体,所以只需尝试即可。我不知道外观是否与 UIAppearance 自定义字体的简单 UIBarButtonItem 完全相同...

标签: ios fonts interface-builder


【解决方案1】:

您可以将UIBarButtonItem 与自定义视图一起使用。您只需将视图/按钮拖放到工具栏即可在故事板/xib 中执行此操作,它将创建一个带有嵌套视图的UIBarButtonItem

代码将如下所示:

<barButtonItem style="plain" id="AwC-sg-sT1">
    <view key="customView" contentMode="scaleToFill" id="4Z4-cp-rPM">
        <rect key="frame" x="0.0" y="0.0" width="320" height="33"/>
        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
    </view>
</barButtonItem>

【讨论】:

  • 在工具栏中拖动 UIView 对我来说不起作用,视图会重新回到对象库中。但是在我的 LaunchScreen.xib 中粘贴那个 xml sn-p 确实有效,并且视图出现在 Interface Builder 中!
【解决方案2】:

最初的想法是继承 UIBarButton Item。使用 IBInspectable 覆盖字体属性,并将其设置为默认的 Avenir Next 字体。但我目前无法对此进行测试,所以我不知道这是否能正常工作。

【讨论】:

  • LaunchScreen 不能包含自定义类。
【解决方案3】:

直接来自我的一个项目:

[[UIBarButtonItem appearanceWhenContainedIn: [UINavigationBar class], nil] 
     setTitleTextAttributes:@{
                              NSFontAttributeName: [UIFont fontWithName:@"YOUR FONT" size:21.f],
                              NSForegroundColorAttributeName: [UIColor whiteColor]
                              } forState:UIControlStateNormal];

【讨论】:

  • 来自原始问题:“由于启动屏幕需要它,我显然无法通过编程设置字体来解决这个问题,必须在 Interface Builder 中完成。”
猜你喜欢
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 2012-03-16
相关资源
最近更新 更多