猿问

情节提要中的自定义字体?

我在我的iOS项目中添加了一种字体。它在项目中,并在项目构建时复制。它似乎是有效的字体,如果我通过该应用列出设备上的所有字体,它将显示出来。我已经正确设置了plist以包含字体。我似乎找不到在Xcode 4.2的故事板部分的文本控件,按钮等中使用它的发现。此外,它似乎不允许我输入字体名称,它迫使我使用字体对话框。我也尝试在系统中安装此字体,但似乎无法使其显示在此列表中。我是否只需要用代码执行此操作,还是可以通过情节提要界面执行此操作?

请注意,我可以在代码中使用它,但是通过情节提要进行此操作会更加方便。


千万里不及你
浏览 527回答 3
3回答

忽然笑

更新:Xcode 6 Interface Builder现在允许您选择自定义字体,并将在设计时正确呈现它们。我知道这个问题已经很久了,但是我一直在努力寻找一种简单的方法来轻松为iOS 5在Storyboard(或Interface Builder)中指定自定义字体,因此我找到了一个非常方便的解决方案。首先,请按照本教程的说明,将字体添加到项目中。还请记住,可以使用UIAppearance代理的setTitleTextAttributes:方法来指定UINavigationBar,UITabBar和UISegmentedControl自定义字体。将以下类别添加到项目中,用于UIButton,UITextField,UILabel和任何其他需要自定义字体的组件。这些类别仅实现了一个新属性fontName,该属性可以更改元素的当前字体,同时保持字体大小。要指定在故事板的字体,只需选择所需的元素(标签,按钮,TextView的,等等),并添加一个用户自定义运行属性与关键路径设置为的fontName类型的字符串和值与您的自定义字体的名称。自定义字体故事板就是这样,您甚至不需要导入类别。这样,您不需要为每个需要自定义字体的UI组件都提供一个插座,也不需要手动对其进行编码。考虑到该字体不会在Storyboard中显示,但是在设备或模拟器上运行时会看到该字体。分类文件UIButton + TCCustomFont.h:#import <UIKit/UIKit.h>@interface UIButton (TCCustomFont)@property (nonatomic, copy) NSString* fontName;@endUIButton + TCCustomFont.m:#import "UIButton+TCCustomFont.h"@implementation UIButton (TCCustomFont)- (NSString *)fontName {&nbsp; &nbsp; return self.titleLabel.font.fontName;}- (void)setFontName:(NSString *)fontName {&nbsp; &nbsp; self.titleLabel.font = [UIFont fontWithName:fontName size:self.titleLabel.font.pointSize];}@endUILabel + TCCustomFont.h:#import <UIKit/UIKit.h>@interface UILabel (TCCustomFont)@property (nonatomic, copy) NSString* fontName;@endUILabel + TCCustomFont.m:#import "UILabel+TCCustomFont.h"@implementation UILabel (TCCustomFont)- (NSString *)fontName {&nbsp; &nbsp; return self.font.fontName;}- (void)setFontName:(NSString *)fontName {&nbsp; &nbsp; self.font = [UIFont fontWithName:fontName size:self.font.pointSize];}@endUITextField + TCCustomFont.h:#import <UIKit/UIKit.h>@interface UITextField (TCCustomFont)@property (nonatomic, copy) NSString* fontName;@endUITextField + TCCustomFont.m:#import "UITextField+TCCustomFont.h"@implementation UITextField (TCCustomFont)- (NSString *)fontName {&nbsp; &nbsp; return self.font.fontName;}- (void)setFontName:(NSString *)fontName {&nbsp; &nbsp; self.font = [UIFont fontWithName:fontName size:self.font.pointSize];}@end也可以从GIST下载,也可以作为一个文件下载。故障排除如果由于fontName未指定属性而遇到运行时错误,只需在项目设置中的“ 其他链接器标志” -all_load下添加标志,以强制链接器包括类别。

慕村9548890

从Xcode6.0开始,作为Xcode6.0发行说明:Interface Builder会在设计期间渲染嵌入式自定义iOS字体,从而以正确的尺寸更准确地预览成品应用的外观。您可以在情节提要中设置标签字体。您可以执行以下操作获取自定义字体文件(.ttf, .ttc)将字体文件导入Xcode项目在app-info.plist中,添加一个由应用程序提供的名为Fonts的键。它是一个数组类型,将所有字体文件名添加到数组中,注意:包括文件扩展名。在情节提要中,将UILabel拖到您的界面上,选择标签,然后导航到“ 属性”检查器,单击“ 字体”选择区域的右键图标按钮。在弹出面板中,选择“ 字体到自定义”,然后选择要嵌入的“ 族 ”字体名称。

富国沪深

从XCode 9.4开始,XCode仍不直接在情节提要中尊重字体。您可以在设计时看到它们,但不能在运行时看到它们。如果使用fontWithName API,您将知道它返回nil,但是在情节提要/ xib中使用时,无法知道为什么它不出现。确保它在运行时可以从Storyboard / XIB轻松运行的唯一方法是将.ttc / .ttf添加到Copy Bundle ResourcesBuild Phase中。从9.4开始,将字体文件名添加到info.plist似乎不再是必需的。
随时随地看视频慕课网APP

相关分类

iOS
我要回答