我已经创建了 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
关于ios - 正确转换 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21135670/