iPhone中带有自定义字体的新标签类

时间:2010-12-15 19:59:38

标签: iphone interface-builder

由于似乎无法通过Interface Builder应用自定义字体,我尝试定义一个新的UILabel派生类,并在其 - (id)init方法中设置我想要使用的自定义字体:这不会导致预期的结果,因为在运行时使用的字体似乎仍然是'Helvetica'(我的自定义字体是'非洲',如果通过代码设置它可以工作)。

这是我的UILabel派生代码段:

- (id)init {
    UIFont *font = [UIFont fontWithName:@"african" size:10];
    [self setFont:font];    

    return self;
}

因此,我正在通过代码强制字体来解决问题:

NSLog(@"Before FONT NAME IS ------------> %@", myLabel.font.fontName);  
UIFont *font = [UIFont fontWithName:@"african" size:10];
[myLabel setFont:font];
myLabel.text = @"HELLO!";
NSLog(@"After FONT NAME IS ------------> %@", myLabel.font.fontName);

打印输出如下:

Before FONT NAME IS ------------> Helvetica
After FONT NAME IS ------------> African

似乎我在init方法中设置的默认字体被覆盖:我应该在哪里设置它?

1 个答案:

答案 0 :(得分:1)

如果您使用init函数,那么“self”将没有任何值...所有init函数必须看起来像这样

- (id)init {
    self = [super init];
    if (self) {
        // Your init code here
    }
    return self;
}

此外,请确保您也将覆盖“initWithFrame:”,如果您想从IB中使用它,也可以“initWithCoder:”。