我创建了UILabel的自定义子类GTLabel,以具有正确的字体,大小,颜色等。
当我以编程方式创建GTLabel时,一切正常。在IB中创建UILabel时,只需将其类更改为GTLabel即可。
现在,当我有一个带有titleLabel的UIButton时,我想将此UILabel转换为GTLabel。
我在GTLabel中创建了一个类方法:
+ (GTLabel*)labelFromLabel:(UILabel*)label
{
...
return myGTLabel;
}
我真的不知道我应该如何进行这种方法。
我想像风箱一样做吗?
GTLabel *myGTLabel = [[GTLabel alloc] init];
// Get all the properties of the original label
myGTLabel.text = label.text;
myGTLabel.frame = label.frame;
// Do the modifications
myGTLabel.font = [UIFont fontWithName:@"Gotham-Light"
size:label.font.pointSize];
这个想法是做类似的事情
myButton.titleLabel = [GTLabel labelFromLabel:myButton.titleLabel];
谢谢你的帮助 !
最佳答案
您可以实现自定义UIButton(例如GTButton)并重新定义titleLabel属性,并为GTLabel设置相同的属性标签
就像是:
#import "GTButton.h"
@implementation GTButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(UILabel *)titleLabel
{
UILabel* parentLabel = [super titleLabel];
parentLabel.font = [UIFont fontWithName:@"Gotham-Light"
size:parentLabel.font.pointSize];
// ... set all your attributes
return parentLabel;
}
@end