iOS開發--UIKit控制項之UIButton(按鈕),--uikituibutton
(註:本文為本人日常開發中所遇到的,使用到的一些方法屬性,作為備忘)
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 : 事件監聽對象,一般傳self21 * 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;}