我需要将我对 View 中所有 UIlabel 所做的 CAlayer 应用
我的 View 上有 6 个 UIlabels,我按照下面的代码做了一个 CAlayer,并想将这个层应用到我所有的 UIlabels
CALayer *lay=[CALayer layer];
lay.borderWidth=2;
lay.borderColor=[UIColor darkGrayColor].CGColor;
[out_lat_min.layer addSublayer:lay];
我的 UIlabel 之一名为 out_lat_min
但没有工作,你能支持我吗?
最佳答案
如果这是您经常使用的标签“样式”,则最好采用的模式是 UILabel 上的类别。这不是行为改变,因此子类化不是正确的答案。
UILabel+MyCompany.m
+ (UILabel *)borderedLabel {
UILabel *label = [[UILabel alloc] init];
[label.layer setBorderWidth:2.0f];
[label.layer setBorderColor:[UIColor darkGrayColor].CGColor];
return label;
}
然后,在您的代码中,使用此方法在任何需要具有此行为的标签的地方创建标签,例如:
UILabel *label1 = [UILabel borderedLabel];
如果有其他需求,例如改变标签的颜色或宽度,请修改类别方法以接受参数。
关于iphone - IOS 将 CAlayer 应用于所有 UILabel 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19067400/