接受的答案是不正确的.您可以在图层上设置属性,但是,您需要对视图进行子类化并通过访问器公开图层属性.
为了说明,我将只使用问题中的一个属性cornerRadius:
第1步:实现UIButton子类.
#import <UIKit/UIKit.h>
@interface MyRoundedCornerButton : UIButton
@end
Run Code Online (Sandbox Code Playgroud)
第2步:添加标记为的属性UI_APPEARANCE_SELECTOR.
#import <UIKit/UIKit.h>
@interface MyRoundedCornerButton : UIButton
@property (readwrite, nonatomic) CGFloat cornerRadius UI_APPEARANCE_SELECTOR;
@end
Run Code Online (Sandbox Code Playgroud)
第3步:实现新类.
@implementation MyRoundedCornerButton
- (void)setCornerRadius:(CGFloat)cornerRadius
{
self.layer.cornerRadius = cornerRadius;
}
@end
Run Code Online (Sandbox Code Playgroud)
步骤4:在外观代理中设置角半径.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[MyRoundedCornerButton appearance].cornerRadius = 10.0;
...
}
Run Code Online (Sandbox Code Playgroud)
步骤5:然后在IB中,(或者在您定义View的创建的任何地方),将自定义视图类设置为(或实例化)MyRoundedCornerButton而不是UIButton.
注意:我这样做是为了在我的应用程序中应用易于更改的渐变背景.在我的例子中,所有视图控制器的根视图都使用自定义类.这个自定义类提供了一个CAGradientLayer通过该+(Class)layerClass方法.然后,我露出colors并locations使用下面的梯度层的属性UI_APPEARANCE_SELECTOR标记.在应用初始化时设置一次可自定义整个应用.您甚至可以将颜色显示给用户,以允许他们完全自定义各种控件的颜色.
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |