iOS開發UI之UIButton的基本使用
一. 繼承關係:
UIButton --> UIControl --> UIView
二. 什麼是按鈕
UIButton既能顯示文字,又能顯示圖片,還能隨時調整內部圖片和文字的位置
三. UIButton的狀態
-
UIControlStateNormal : 預設狀況
-
UIControlStateHighlighted : 高亮狀態(按鈕被按下去的時候,既為手指還未鬆開)
-
UIControlStateDisabled : 失效狀態,不可用狀態
如果enable = NO,處於disable狀態,代表按鈕不可以被點選
四. 按鈕的樣式
Ø UIButtonTypeCustom:無型別,按鈕的內容需要自定義
Ø UIButtonTypeSystem:
Ø UIButtonTypeDetailDisclosure:
Ø UIButtonTypeInfoLight:
Ø UIButtonTypeInfoDark:詳情按鈕
我
1.1. 建立按鈕
UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];
2. 設定按鈕上的圖片(按鈕上的圖片分狀態,設定圖片時必須告訴系統文字在按鈕的什麼狀態下顯示)
// 設定預設狀態下的圖片
[addBtn setImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
// 設定高亮狀態下的圖片
[addBtn setImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
// 設定不可點選時的圖片
[addBtn setImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];
3. 設定圖片對齊方式
btn.imageView.contentMode = UIViewContentModeScaleAspectFit;
4. 設定背景色
btn.backgroundColor = [UIColor purpleColor];
5. 設定按鈕的背景圖片
[btn setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted];
6. 設定文字(按鈕上的文字分狀態,設定文字時必須告訴系統文字在按鈕的什麼狀態下顯示)
[btn setTitle:@"普通按鈕" forState:UIControlStateNormal];
[btn setTitle:@"高亮按鈕" forState:UIControlStateHighlighted];
7. 設定文字顏色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
8. 設定文字大小
btn.titleLabel.font = [UIFont systemFontOfSize:20];
9. 設定文字的顏色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];
10. 設定文字的大小
btn.titleLabel.font = [UIFont systemFontOfSize:20];
11. 監聽按鈕
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchDown];
12. 將按鈕新增到View上
[self.view addSubview:btn];
13. 獲取按鈕上的文字
[self.addBtn titleForState:UIControlStateNormal];
14. 獲得按鈕的文字顏色
[self.addBtn titleColorForState:UIControlStateNormal];
15. 獲得按鈕內部的小圖片
[self.addBtn imageForState:UIControlStateNormal];
16.獲得按鈕的背景圖片
[self.addBtn backgroundImageForState:UIControlStateNormal];
17.內邊距設定
// 設定按鈕內邊距
self.btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10);
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