1. 程式人生 > >iOS開發UI之UIButton的基本使用

iOS開發UI之UIButton的基本使用

一. 繼承關係:

UIButton --> UIControl --> UIView

二. 什麼是按鈕

UIButton既能顯示文字,又能顯示圖片,還能隨時調整內部圖片和文字的位置

三. UIButton的狀態

  • UIControlStateNormal : 預設狀況

  • UIControlStateHighlighted : 高亮狀態(按鈕被按下去的時候,既為手指還未鬆開)

  • UIControlStateDisabled : 失效狀態,不可用狀態

    如果enable = NO,處於disable狀態,代表按鈕不可以被點選

四. 按鈕的樣式

Ø UIButtonTypeCustom:無型別,按鈕的內容需要自定義

Ø UIButtonTypeSystem:

Ø UIButtonTypeDetailDisclosure:

Ø UIButtonTypeInfoLight:

Ø UIButtonTypeInfoDark:詳情按鈕

1.1. 建立按鈕

  1. UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];

2. 設定按鈕上的圖片(按鈕上的圖片分狀態,設定圖片時必須告訴系統文字在按鈕的什麼狀態下顯示)

  1. // 設定預設狀態下的圖片
  2. [addBtn setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
  3. // 設定高亮狀態下的圖片
  4. [addBtn setImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
  5. // 設定不可點選時的圖片
  6. [addBtn setImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];

3. 設定圖片對齊方式

  1. btn.imageView.contentMode = UIViewContentModeScaleAspectFit;

4. 設定背景色

  1. btn.backgroundColor = [UIColor purpleColor];

5. 設定按鈕的背景圖片

  1. [btn setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
  2. [btn setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted];

6. 設定文字(按鈕上的文字分狀態,設定文字時必須告訴系統文字在按鈕的什麼狀態下顯示)

  1. [btn setTitle:@"普通按鈕" forState:UIControlStateNormal];
  2. [btn setTitle:@"高亮按鈕" forState:UIControlStateHighlighted];

7. 設定文字顏色

  1. [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  2. [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];

8. 設定文字大小

  1. btn.titleLabel.font = [UIFont systemFontOfSize:20];

9. 設定文字的顏色

  1. [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  2. [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];

10. 設定文字的大小

  1. btn.titleLabel.font = [UIFont systemFontOfSize:20];

11. 監聽按鈕

  1. [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];

12. 將按鈕新增到View上

  1. [self.view addSubview:btn];

13. 獲取按鈕上的文字

  1. [self.addBtn titleForState:UIControlStateNormal];

14. 獲得按鈕的文字顏色

  1. [self.addBtn titleColorForState:UIControlStateNormal];

15. 獲得按鈕內部的小圖片

  1. [self.addBtn imageForState:UIControlStateNormal];

16.獲得按鈕的背景圖片

  1. [self.addBtn backgroundImageForState:UIControlStateNormal];

17.內邊距設定

  1. // 設定按鈕內邊距
  2. self.btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10);
  3. self.btn.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

五. UIButton/UIImageView/UILabel的選擇

uUIButton

u特點

-既能顯示文字,又能顯示圖片(能顯示2張圖片,背景圖片、內容圖片)

-長按高亮的時候可以切換圖片\文字

-直接通過addTarget...方法監聽點選

uUIImageView

-能顯示圖片,不能直接通過addTarget...方法監聽點選

uUILabel

-能顯示文字,不能直接通過addTarget...方法監聽點選

u選擇

u僅僅是顯示資料,不需要點選

-建議選擇UIImageView、UILabel

u不僅顯示資料,還需要監聽點選

-建議選擇UIButton

-其實UIImageView、UILabel也可以通過手勢識別器來監聽(後面課程會學)

u長按控制元件後,會改變顯示的內容

-不用考慮了,選擇UIButton(因為UIButton有highlighted這種狀態)

u同時顯示2張圖片:背景圖片、內容圖片

-不用考慮了,選擇UIButton