2013-08-24 52 views
1

到目前爲止,我已經改變了所有這一切都在我的類使用下面的代碼設置類的cornerRadius使用的UIButton appearanceWhenContainedIn

[[UIButton appearanceWhenContainedIn:[FirstPadViewController class], nil] setBackgroundImage:img forState:UIControlStateNormal]; 

因爲我不希望創建就是爲什麼我使用了一個出口的按鈕圖像這條路。所以,我怎麼可以設置cornerRadius使用的UIButton appearanceWhenContainedIn

我試過,但它不工作

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

回答

2

基本上,你不能這樣做。而且,即使它有效,任何時候都可以隨時更新,或者具有未定義的行爲。

UIAppearance代理保留給聲明UI_APPEARANCE_SELECTOR的方法/屬性。

看看this list看看你可以用UIAppearance來定製什麼。據它,你可以只更改tintColor。該列表尚未完成,但layer(和擴展名,cornerRadius)不在外觀選擇器中。

+0

我想上面的代碼,但它不工作,你確定它不可能動原因男人這樣可以真的節省了我很多時間 – java

+1

好吧,如果我理解了這個問題,並且你想用'UIAppearance'在所有'UIButton'上應用'setCornerRadius',我認爲這是不可能的。我可能是錯的,但在任何地方都沒有看到。 – DCMaxxx

+0

是的,我認爲你是對的,我試過了,沒有任何事情發生 – java

-2

寫這段代碼在你的班上,it'l工作,但我不知道是不是對你合適

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; 

     }