2013-04-20 84 views
4

我有一個自定義的UIButton下面的代碼:自定義UIButton圓形角落變得高亮?

btnLogin.layer.cornerRadius = 10; 

[btnLogin setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bluetint.png"]]]; 
[btnLogin setAlpha:1]; 
[btnLogin setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[btnLogin setBackgroundImage:[UIImage imageNamed:@"reallybluetint.png"] forState:UIControlStateHighlighted]; 
[btnLogin setBackgroundImage:[UIImage imageNamed:@"reallybluetint.png"] forState:UIControlStateSelected]; 

當我強調,即使它在正常狀態下具有圓角就變成方形的按鈕。

任何想法?

+0

使用uicontrolstate突顯了創建一個默認的按鈕。因此方角。如果你喜歡,我可以告訴你如何創建與石英核心按鈕。 – 2013-04-20 04:55:14

回答

6

嘗試使用此代碼,將工作,

btnLogin.layer.cornerRadius = 10.0; 
[btnLogin setClipsToBounds:YES]; 
0

我也有過類似的問題,確保在Interface Builder按鈕被設置爲自定義的,因爲如果它不是,你會看到圓角。

另外一些有用的,我發現處理圖像時是UIEdgeInsets。所以我可能會這樣做一個程序化的自定義按鈕。

UIButton * customButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[customButton setBackgroundImage:[[UIImage imageNamed:@"customerImage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 4, 2, 4)] forState:UIControlStateNormal]; 

但任何圖像,你可以使用resizableImageWithCapInsets。我建議您閱讀此內容,以確保您可以正確配置它,但即使它不能幫助您知道它可以在以後幫助您。

Apple Doc只是控制F表示可調整大小

希望這有助於^ _^

附:如果你嘗試這樣做,圓角將起作用,但它不起作用,請確保你已經導入了Quartzcore。我經常忘記這一步,直到我找到解決方案時才變得焦慮不安。無論如何祝你好運!

0

斯威夫特

import UIKit 

class CustomUIButtonForUIToolbar: UIButton { 

    override func drawRect(rect: CGRect) { 
     super.drawRect(rect) 
     ... 
     self.clipsToBounds = true 
    } 

}