給iOS開發新手送點福利,簡述UIButton的屬性和用法

徐明清發表於2013-12-13

UIButton屬性

1.UIButton狀態:

UIControlStateNormal          // 正常狀態   
UIControlStateHighlighted     // 高亮狀態   
UIControlStateDisabled        // 禁用狀態    
UIControlStateSelected        // 選中狀態    
UIControlStateApplication     //     
UIControlStateReserved        // 保留狀態

2.Uibutton型別:

UIButtonTypeCustom            //自定義型別
 新增圖片: 

灰色背景顏色:
 

UIButtonTypeRoundedRect       //圓角型別


UIButtonTypeDetailDisclosure   //細節展示按鈕


UIButtonTypeInfoLight          //淺色背景的資訊按鈕


UIButtonTypeInfoDark           //暗色背景的資訊按鈕


UIButtonTypeContactAdd         // 新增按鈕


3.UIButton常用屬性

給按鈕設定文字時,蘋果文件說明,不能使用label物件設定文字的顏色或者陰影顏色,相反必須使用setTitleColor:forState: and setTitleShadowColor:forState:這兩個方法才能修改這些值。

 

設定按鈕中其他屬性依次類推。。。。

 

設定對應狀態的標題內容default is nil. title is assumed to be single line

- (void)setTitle:(NSString *)title forState:(UIControlState)state;  

設定對應狀態的標題顏色           

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;   

設定對應狀態的標題陰影顏色            

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;          

設定對應狀態的按鈕的圖片

- (void)setImage:(UIImage *)image forState:(UIControlState)state;        

設定對應狀態的按鈕背景圖片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

 

新增事件

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

這些事件都是基於觸控、基於值、基於編輯。有如下事件會觸發。

在點選按鈕是按鈕是凹下去,然後彈起才觸發起事件,按鈕的狀態有:

  1. UIControlEventTouchDown      // 按下    
  2.    
  3. UIControlEventTouchDownRepeat  多次按下   
  4. UIControlEventTouchUpInside // 在按鈕及其一定外圍內鬆開
  5.    
  6. UIControlEventTouchUpOutside // 按鈕外面鬆開  

 

4.adjustsImageWhenDisabled

當按鈕禁用的情況下,影象的顏色會被畫深一點,預設為YES。

5.adjustsImageWhenHighlighted

當按鈕高亮的情況下,影象的顏色會被畫深一點,預設為YES。

6.showsTouchWhenHighlighted

button.showsTouchWhenHighlighted=YES;點選時的閃光效果會被前景圖片遮住中間部分;

6.contentEdgeInsets

設定按鈕的內部內容(包含按鈕圖片和標題)離按鈕邊緣上下左右的距離。

 

7.按鈕例項

1.有些時候我們想讓UIButton的title居左對齊,我們設定 
btn.textLabel.textAlignment = UITextAlignmentLeft

是沒有作用的,我們需要設定 

btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;

但是問題又出來,此時文字會緊貼到左邊框,我們可以設定 

btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);

使文字距離左邊框保持10個畫素的距離。 

 

相關文章