(註:本文為本人日常開發中所遇到的,使用到的一些方法屬性,作為備忘) UIButton與UIView一樣,是做iOS開發中最常用、常見的一個UIKit控制項。 UIButton繼承自UIControl,而UIControl繼承自UIView,所以UIButton也可以說是UIView的一個子類。 在任 ...
(註:本文為本人日常開發中所遇到的,使用到的一些方法屬性,作為備忘)
UIButton與UIView一樣,是做iOS開發中最常用、常見的一個UIKit控制項。
UIButton繼承自UIControl,而UIControl繼承自UIView,所以UIButton也可以說是UIView的一個子類。
在任何iOS應用中,UIButton都是隨處可見的,它可以與用戶進行交互,傳遞事件!
創建UIButton
1 // 實例化(創建)按鈕 2 /** 3 * Type取值: 4 * 1. UIButtonTypeContactAdd : 加號按鈕 5 * 2. UIButtonTypeCustom : 自定義按鈕 6 * 3. UIButtonTypeDetailDisclosure : 'i'字按鈕 7 * 4. UIButtonTypeInfoDark : 'i'字按鈕 8 * 5. UIButtonTypeInfoLight : 'i'字按鈕 9 * 6. UIButtonTypeRoundedRect : 圓角按鈕(現在設置這個最終效果並不是圓角) 10 * 7. UIButtonTypeSystem : 效果與上面的RoundedRect一樣 11 */ 12 UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; 13 // 設置背景顏色 14 button.backgroundColor = [UIColor lightGrayColor]; 15 // 設置區域範圍 16 button.frame = CGRectMake(110, 234, 100, 100); 17 // 添加到View上 18 [self.view addSubview:button];
屬性
1 // 設置是否選中狀態 2 button.selected = NO; 3 // 設置是否接收觸摸事件 4 button.enabled = YES; 5 // 設置tag值 6 button.tag = 0; 7 // 設置按鈕標題文字的字體大小 8 button.titleLabel.font = [UIFont systemFontOfSize:18.0f]; 9 // 通過設置這個屬性,可以讓按鈕的文字適應按鈕的區域顯示 10 // NSLineBreakByCharWrapping 也可以設置成這個,效果一樣 11 button.lineBreakMode = NSLineBreakByWordWrapping; 12 // 設置圓角直徑 13 button.layer.cornerRadius = 10.0f; 14 // 剪切超出部分 15 button.layer.masksToBounds = YES; 16 // 邊框寬度 17 button.layer.borderWidth = 1.0f; 18 // 邊框顏色 19 button.layer.borderColor = [UIColor purpleColor].CGColor;
方法
1 // 設置按鈕狀態標題文字 2 /** 3 * State取值: 4 * 1. UIControlStateNormal : 普通狀態(預設狀態) 5 * 2. UIControlStateSelected : 選中狀態 6 * 3. UIControlStateHighlighted : 高亮狀態 7 * 4. UIControlStateDisabled : 禁用狀態 8 * 平常開發用的到的狀態就這四個 9 */ 10 [button setTitle:@"按鈕" forState:UIControlStateNormal]; 11 // 設置按鈕狀態圖標 12 // 這裡state的取值與上面相同 13 [button setImage:[UIImage imageNamed:@"01.png"] forState:UIControlStateNormal]; 14 // 設置按鈕狀態背景圖 15 // 這裡state的取值與上面相同 16 [button setBackgroundImage:[UIImage imageNamed:@"02.png"] forState:UIControlStateNormal]; 17 // 添加(綁定)點擊事件 18 /** 19 * 參數說明: 20 * target : 事件監聽對象,一般傳self 21 * action : 回調的事件方法,只能傳按鈕本身一個參數 22 * ControlEvents : 監聽類型 23 * UIControlEventTouchUpInside : 單擊 24 * UIControlEventTouchCancel : 觸摸取消 25 * UIControlEventTouchDown : 觸摸完成 26 * 到目前為止,我用的最多的就是單擊事件,基本很少用到取消與完成 27 */ 28 [button addTarget:self action:@selector(ButtonTouchEvent:) forControlEvents:UIControlEventTouchUpInside];
事件
- (void)ButtonTouchEvent:(UIButton *)sender { // 按鈕點擊事件回調處理 // 設置按鈕選中技巧 sender.selected = !sender.selected; }