UIButton的運用
本節知識點:
- UIButton的基本用法
- UIButton的代碼創建
1. UIButton的基本用法
- 按鈕既能顯示文字,又能顯示圖片
- 可以改變位置
type屬性
- 知識點:Detail Disclosure/info Light/info Dark長一樣(iOS7以前不一樣,扁平化以後都一樣,殘留的東西)
自定義按鈕
- type自動改成了custom
按鈕的狀態
- 高亮狀態:改變文字和圖片、背景圖片(區別系統自帶效果)
拖線打印,引出disable Enable的屬性變爲NO
- 設置disable狀態下的文字
- 改變文字
- 通過代碼改變按鈕的狀態
2. UIButton的代碼創建
代碼創建
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; //等價 UIButton *btn = [[UIButton alloc] init];
創建一個按鈕
- 圖片、背景圖片、標題、標題顏色和設置尺寸
監聽按鈕點擊
- 只要按鈕觸發了UIControlEventTouchUpInside事件,就會調用self對象的buttonClick方法
[btn addTarget:self action:@selector(buttonClick) forCOntrolEvents:UIControlEventTouchUpInside];
按鈕、lable、UIImageView的區別
UIButton
- 既能顯示文字,又能顯示圖片(能顯示2張圖片,背景圖片、內容圖片)
- 長按高亮的時候可以切換圖片\文字
- 直接通過addTarget…方法監聽點擊
UIImageView
能顯示圖片,不能直接通過addTarget…方法監聽點擊
UILabel
能顯示文字,不能直接通過addTarget…方法監聽點擊
調用帶參數的方法
//誰調用參數傳的就是誰,這裏btn調用所以buttonClick:(參數){}傳的就是btn [btn addTarget:self action:@selector(buttonClick:) forCOntrolEvents:UIControlEventTouchUpInside];
示例
// 1. 創建按鈕 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; // UIButton *button = [[UIButton alloc]init];// 和上面一行代碼等價 // 注意:按鈕創建好之後,按鈕的類型是不可以被修改 // button.buttonType = UIButtonTypeCustom ; // 錯誤寫法,系統會報錯 // 2. 設置位置尺寸 button.frame = CGRectMake(100, 200, 200, 50); // 3. 設置文字 // 3.1 常態的文字 [button setTitle:@"我是按鈕" forState:UIControlStateNormal]; // 3.2 高亮狀態的文字 [button setTitle:@"我是高亮按鈕" forState:UIControlStateHighlighted]; // 4. 設置字體顏色 // 4.1 常態的字體顏色 [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; // 4.2 高亮狀態的字體顏色 [button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; // 4. 設置圖片 // 4.1 常態下的圖片 [button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal]; // 4.2 高亮下的圖片 [button setImage:[UIImage imageNamed:@"like_pressed"] forState:UIControlStateHighlighted]; // 5. 設置背景圖片 // 5.1 常態下的背景圖 [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; // 5.2 高亮下的背景圖 [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_hightlighted"] forState:UIControlStateHighlighted]; // 6. 設置按鈕點擊狀態, 默認就是YES ,NO 狀態是不可點擊 button.enabled = YES; // 7. 將按鈕添加入控制器view中 [self.view addSubview:button]; // 8. 監聽按鈕點擊事件 [button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];