iphone - IOS 将 CAlayer 应用于所有 UILabel 层

标签 iphone ios objective-c ipad

我需要将我对 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/

相关文章:

iphone - 如何从另一个类设置 UILabel 文本

iphone - iOS:如何在整个生命周期内保存数据?

ios - 无法使用 YTPlayerView 在 iOS 后台播放 youtube 视频

ios - 如何将 NSData 转换为 C 字符串?

ios - 为什么旋转应用程序时会在所有 View Controller 中调用 viewWillTransition 方法?

ios - 从 UIViewController 过渡到 TabBarViewController

iOS Combine Framework - Publisher 只发布一次,然后再也不会发布

ios - UIView animateWithDuration 如何通过触摸事件取消(不与 MapView 交互)

objective-c - iOS开发——正确使用rootViewController

iphone - 在drawRect :中部分绘制UIView的最有效方法