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

slycrel

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

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

redent84

更新: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;
@end

UIButton + TCCustomFont.m

#import "UIButton+TCCustomFont.h"

@implementation UIButton (TCCustomFont)

- (NSString *)fontName {
    return self.titleLabel.font.fontName;
}

- (void)setFontName:(NSString *)fontName {
    self.titleLabel.font = [UIFont fontWithName:fontName size:self.titleLabel.font.pointSize];
}

@end

UILabel + TCCustomFont.h

#import <UIKit/UIKit.h>

@interface UILabel (TCCustomFont)
@property (nonatomic, copy) NSString* fontName;
@end

UILabel + TCCustomFont.m

#import "UILabel+TCCustomFont.h"

@implementation UILabel (TCCustomFont)

- (NSString *)fontName {
    return self.font.fontName;
}

- (void)setFontName:(NSString *)fontName {
    self.font = [UIFont fontWithName:fontName size:self.font.pointSize];
}

@end

UITextField + TCCustomFont.h

#import <UIKit/UIKit.h>

@interface UITextField (TCCustomFont)
@property (nonatomic, copy) NSString* fontName;
@end

UITextField + TCCustomFont.m

#import "UITextField+TCCustomFont.h"

@implementation UITextField (TCCustomFont)

- (NSString *)fontName {
    return self.font.fontName;
}

- (void)setFontName:(NSString *)fontName {
    self.font = [UIFont fontWithName:fontName size:self.font.pointSize];
}

@end

也可以从GIST下载,也可以作为一个文件下载

故障排除

如果由于fontName未指定属性而遇到运行时错误,只需在项目设置中的“其他链接器标志”-all_load添加标志,以强制链接器包括类别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

设置自定义按钮字体,而不被情节提要中设置的值覆盖

无法在情节提要中更改自定义UICollectionViewCell

情节提要和自定义init

如何在情节提要中将自定义字体设置为UILabel

我可以在情节提要中看到我的自定义字体,但是iOS Simulator中的字体没有变化吗?

Swift-以编程方式从情节提要中添加自定义颜色

如何在情节提要场景中嵌入自定义视图Xib?

如何替换/自定义情节提要导航控件中的后退按钮图像

从代码和情节提要中实例化自定义按钮-如何创建init方法

UINavigationBar自定义颜色,在情节提要板中嵌入了UInavigatonController

情节提要中的“自定义单元格行高”设置没有响应

如何在情节提要中添加自定义UIControl类?

无法从Xcode 6.1中的情节提要板连接自定义协议委托

在情节提要中自定义表格视图单元时出现NSInternalInconsistencyException异常

使用情节提要板在UIViewController中初始化自定义UIView

“情节提要”中的“自定义类”构建器用于什么?

自情节提要的TableView的自定义初始化

在情节提要中,如何制作自定义单元以与多个控制器一起使用?

如何将ibOutlet从子视图链接到情节提要Xcode中的自定义UIView类

如何使用数据触发器停止自定义情节提要?

使用带有某些单元的情节提要的自定义UITableViewCell

自定义单元永远不会为零(不要使用情节提要)

使用情节提要创建的自定义UITableViewCell不显示标签数据-Swift

如何使用情节提要板实现自定义表格视图节的页眉和页脚

自定义视图(xib)在情节提要板上不可见

如何在情节提要中使用ViewController的自定义init

如何使用情节提要添加自定义数据源类

使用情节提要和自定义View Controller初始化

使用情节提要板实现自定义视图布局