ios - 正确转换 UILabel

标签 ios casting uilabel

我已经创建了 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/

相关文章:

javascript - 如何在 TypeScript 2 中转换为数组?

ios - 删除 UILabel 填充

ios - 无法将正确的图像传递给 uitableviewcell

ios - Json Values Append Array 但 ViewDidLoad 看起来是空的

c++ - 跨 dll 强制转换 void 指针

ios - 为什么百分比 UILabel 显示 'nan%'

ios - 更改/循环标签中的文本

ios - 如何缩短 UIRefreshControl 的拉动距离来激活拉动刷新 Action ?

ios - 点击imageview的动画,酷炫的小放大

java - 将任意转义字符转换为 int