我尝试使用尺寸类为iphone和ipad布局添加2种不同的字体大小。它使用默认的系统字体很酷,但不能使用自定义字体。如果我为wR hR添加第二个大小,那么字体在界面构建器中看起来正确(我甚至检查过xml)但是在模拟器和设备上它变成了System而不是我的自定义字体。但是,如果我删除wR hR(或我用于其他尺寸的任何布局),则字体显示正确。不知道如何解决这个问题?谢谢!
我正在使用xCode7
答案 0 :(得分:0)
设置自定义字体的步骤。
1)将字体设置为System for size size
2)子类UILabel并覆盖" layoutSubviews"方法如:
- (void)layoutSubviews
{
[super layoutSubviews];
// Implement font logic depending on screen size
self.font = [UIFont fontWithName:@"CustomFont" size:self.font.pointSize];
}
可能会帮助你。
答案 1 :(得分:0)
//Create Custom class of UILabel
class LabelDeviceClass : UILabel{
@IBInspectable var fontBold: Bool = true // add bold bool variable in attributes inspector
@IBInspectable var fontItalic: Bool = true / add italic bool variable in attributes inspector
//this code add font size in attributes inspector so you can give font size
@IBInspectable var iPhoneSize:CGFloat = 0 {
didSet {
if isPhone() {
overrideFontSize(fontSize: iPhoneSize)
}
}
}
@IBInspectable var iPadSize:CGFloat = 0 {
didSet {
if isPad() {
overrideFontSize(fontSize: iPadSize)
}
}
}
func overrideFontSize(fontSize:CGFloat){
var currentFontName = "SofiaPro"//font name you want to use
if fontBold{
currentFontName = "SofiaPro-Bold"
}
else if fontItalic{
currentFontName = "SofiaPro-Italic"
}
if let calculatedFont = UIFont(name: currentFontName, size: fontSize) {
self.font = calculatedFont
}
}
}