目錄:
1炕倘、UIButton基礎(chǔ)簡(jiǎn)介
2钧大、UIButton事件
1、UIButton基礎(chǔ)簡(jiǎn)介
//這里創(chuàng)建一個(gè)圓角矩形的按鈕
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// 能夠定義的button類型有以下6種罩旋,
// typedef enum {
// UIButtonTypeCustom = 0, 自定義風(fēng)格
// UIButtonTypeRoundedRect, 圓角矩形
// UIButtonTypeDetailDisclosure, 藍(lán)色小箭頭按鈕啊央,主要做詳細(xì)說明用
// UIButtonTypeInfoLight, 亮色感嘆號(hào)
// UIButtonTypeInfoDark, 暗色感嘆號(hào)
// UIButtonTypeContactAdd, 十字加號(hào)按鈕
// } UIButtonType;
//給定button在view上的位置
button1.frame = CGRectMake(20, 20, 280, 40);
//button背景色
button1.backgroundColor = [UIColor clearColor];
//設(shè)置button填充圖片
//[button1 setImage:[UIImage imageNamed:@"btng.png"] forState:UIControlStateNormal];
//設(shè)置button標(biāo)題
[button1 setTitle:@"點(diǎn)擊" forState:UIControlStateNormal];
/* forState: 這個(gè)參數(shù)的作用是定義按鈕的文字或圖片在何種狀態(tài)下才會(huì)顯現(xiàn)*/
//以下是幾種狀態(tài)
// enum {
// UIControlStateNormal = 0, 常規(guī)狀態(tài)顯現(xiàn)
// UIControlStateHighlighted = 1 << 0, 高亮狀態(tài)顯現(xiàn)
// UIControlStateDisabled = 1 << 1, 禁用的狀態(tài)才會(huì)顯現(xiàn)
// UIControlStateSelected = 1 << 2, 選中狀態(tài)
// UIControlStateApplication = 0x00FF0000, 當(dāng)應(yīng)用程序標(biāo)志時(shí)
// UIControlStateReserved = 0xFF000000 為內(nèi)部框架預(yù)留,可以不管他
// };
/*
* 默認(rèn)情況下涨醋,當(dāng)按鈕高亮的情況下瓜饥,圖像的顏色會(huì)被畫深一點(diǎn),如果這下面的這個(gè)屬性設(shè)置為no浴骂,
* 那么可以去掉這個(gè)功能
*/
button1.adjustsImageWhenHighlighted = NO;
/*跟上面的情況一樣乓土,默認(rèn)情況下,當(dāng)按鈕禁用的時(shí)候溯警,圖像會(huì)被畫得深一點(diǎn)趣苏,設(shè)置NO可以取消設(shè)置*/
button1.adjustsImageWhenDisabled = NO;
/* 下面的這個(gè)屬性設(shè)置為yes的狀態(tài)下,按鈕按下會(huì)發(fā)光*/
button1.showsTouchWhenHighlighted = YES;
/* 給button添加事件梯轻,事件有很多種食磕,我會(huì)單獨(dú)開一篇博文介紹它們,下面這個(gè)時(shí)間的意思是
按下按鈕喳挑,并且手指離開屏幕的時(shí)候觸發(fā)這個(gè)事件芬为,跟web中的click事件一樣萄金。
觸發(fā)了這個(gè)事件以后,執(zhí)行butClick:這個(gè)方法媚朦,addTarget:self 的意思是說氧敢,這個(gè)方法在本類中
也可以傳入其他類的指針*/
[button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
//顯示控件
[self.view addSubview:button1];
//添加點(diǎn)擊事件
[button1 addTarget:self action:@selector(alarmTimeDone:) forControlEvents:UIControlEventTouchUpInside];
//addTarget:self 是鏈接到self,一般都這樣設(shè)置
//action:@selector(alarmTimeDone:) 時(shí)間處理函數(shù)
//forControlEvents:UIControlEventTouchUpInside 控件事件處理的消息
//取消按鈕已經(jīng)添加的所有事件:(這個(gè)比較重要,若添加了兩個(gè)事件 兩個(gè)事件都會(huì)被觸發(fā))
[btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
2、UIButton事件(繼承自UIControl):
//單點(diǎn)觸摸按下事件:用戶點(diǎn)觸屏幕询张,或者又有新手指落下的時(shí)候孙乖。
UIControlEventTouchDown
//多點(diǎn)觸摸按下事件,點(diǎn)觸計(jì)數(shù)大于1:用戶按下第二份氧、三唯袄、或第四根手指的時(shí)候。
UIControlEventTouchDownRepeat
//當(dāng)一次觸摸在控件窗口內(nèi)拖動(dòng)時(shí)蜗帜。
UIControlEventTouchDragInside
//當(dāng)一次觸摸在控件窗口之外拖動(dòng)時(shí)恋拷。
UIControlEventTouchDragOutside
//當(dāng)一次觸摸從控件窗口之外拖動(dòng)到內(nèi)部時(shí)。
UIControlEventTouchDragEnter
//當(dāng)一次觸摸從控件窗口內(nèi)部拖動(dòng)到外部時(shí)厅缺。
UIControlEventTouchDragExit
//所有在控件之內(nèi)觸摸抬起事件蔬顾。
UIControlEventTouchUpInside
//所有在控件之外觸摸抬起事件(點(diǎn)觸必須開始與控件內(nèi)部才會(huì)發(fā)送通知)。
UIControlEventTouchUpOutside
//所有觸摸取消事件湘捎,即一次觸摸因?yàn)榉派狭颂嗍种付蝗∠骰恚蛘弑簧湘i或者電話呼叫打斷。
UIControlEventTouchCancel
//當(dāng)控件的值發(fā)生改變時(shí)窥妇,發(fā)送通知舷胜。用于滑塊、分段控件活翩、以及其他取值的控件烹骨。你可以配置滑塊控件何時(shí)發(fā)送通知,在滑塊被放下時(shí)發(fā)送材泄,或者在被拖動(dòng)時(shí)發(fā)送沮焕。
UIControlEventTouchChanged
//當(dāng)文本控件中開始編輯時(shí)發(fā)送通知。
UIControlEventEditingDidBegin
//當(dāng)文本控件中的文本被改變時(shí)發(fā)送通知脸爱。
UIControlEventEditingChanged
//當(dāng)文本控件中編輯結(jié)束時(shí)發(fā)送通知遇汞。
UIControlEventEditingDidEnd
//當(dāng)文本控件內(nèi)通過按下回車鍵(或等價(jià)行為)結(jié)束編輯時(shí)未妹,發(fā)送通知簿废。
UIControlEventEditingDidOnExit
//通知所有觸摸事件。
UIControlEventAlltouchEvents
//通知所有關(guān)于文本編輯的事件络它。
UIControlEventAllEditingEvents
//通知所有事件族檬。
UIControlEventAllEvents