LaunchScreen.xib 工具栏中 UIBarButtonItem 的自定义系统字体

Custom system font for a UIBarButtonItem in a toolbar for LaunchScreen.xib

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

我能够使用 Avenir Next 作为 Interface Builder 中的导航栏,但我找不到在 UIToolbar 中为 UIBarButtonItem 设置字体的方法。 Avenir Next 字体在启动屏幕时间内正确显示在导航栏中。

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

有没有办法完成这个,也许是通过手动编辑 LaunchScreen.xib 文件?

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

直接来自我的一个项目:

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

您可以将 UIBarButtonItem 与自定义视图一起使用。您可以在 storyboard/xib 中执行此操作,只需将 view/button 拖放到您的工具栏,它将创建一个带有嵌套视图的 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>