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

时间:2015-01-23 15:03:55

标签: ios fonts interface-builder

我在我使用外观API设置的应用中使用 Avenir Next 字体(由iOS提供)。我希望我的LaunchScreen.xib也能使用它,以便从启动屏幕到初始视图控制器的转换顺利。

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

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

有没有办法实现这一点,可能是通过手动编辑LaunchScreen.xib文件?

3 个答案:

答案 0 :(得分:5)

您可以将UIBarButtonItem与自定义视图一起使用。只需将视图/按钮拖放到工具栏,就可以在storyboard / 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>

答案 1 :(得分:-4)

最初的想法是将UIBarButton项子类化。使用IBInspectable覆盖font属性并将其设置为默认的Avenir Next字体。但我目前无法测试,所以我不知道这是否能正常工作。

答案 2 :(得分:-4)

直接参与我的一个项目:

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