使用UIButton appearanceWhenContainedIn设置class的cornerRadius

时间:2013-08-24 09:24:32

标签: iphone ios uibutton uiappearance

到目前为止,我已使用以下代码

更改了班级中所有按钮的图像
   [[UIButton appearanceWhenContainedIn:[FirstPadViewController class], nil] setBackgroundImage:img forState:UIControlStateNormal];

因为我不想创建一个插座,这就是我用这种方式的原因。那么如何使用UIButton appearanceWhenContainedIn

设置cornerRadius

我尝试了这个,但它不起作用

 [[[UIButton appearanceWhenContainedIn:[FirstPadViewController class], nil] layer ] setCornerRadius:20];
 [[[UIButton appearanceWhenContainedIn:[FirstPadViewController class], nil] layer ] setMasksToBounds:YES];

2 个答案:

答案 0 :(得分:2)

基本上,你不能这样做。并且,即使它有效,它也可以随时更新,或者具有未定义的行为。

UIAppearance代理保留给声明UI_APPEARANCE_SELECTOR的方法/属性。

查看this list,了解您可以使用UIAppearance自定义的内容。根据它,您只能更改tintColor。该列表不完整,但layer(并且扩展名为cornerRadius)不在外观选择器中。

答案 1 :(得分:-2)

在你的班级写下这段代码,它可以工作,但我不知道你可以吗

for(UIView *view in self.view.subviews)
        if([view isKindOfClass:[UIButton class]]){
            UIButton *btn= (UIButton *)view;
            btn.layer.cornerRadius = 5;
            btn.layer.borderColor = [UIColor redColor].CGColor;
            btn.layer.borderWidth =5;

        }