這一部份為單純使用Code寫一個顯示的畫面的HelloWorld共三篇,此為第三篇。 第一篇,第二篇,,有關這個分類的說明
本節要學的事:
- Taget - Action 的建立
- @selector 的使用
-(void)writeHelloWorld:(UIButton *)sender{
if ([myLabel.text isEqualToString:@"Hello"]) {
myLabel.text=@"World!";
}else{
myLabel.text=@"Hello";
}
}
一切完成之後,我們就要在 button 上加 Target 了。要在UIView 實體上加上 Taget 可以用 addTarget 方法,完整的參數為 :
addTarget:目標對向 action:SEL選擇器 forControlEvents:UIControlEvents
目標對向在這兒就是自已 self。選擇器要指向 writeHelloWorld 這個方法,但不可以直接打,因為編譯器無法分別你是要呼叫方法還是要傳送訊息,要傳送訊息時,要用 SEL 的資料類型,生成 SEL 有個簡單的方法,就是 @selector(),像是我們要產生 writeHelloWorld 的 SEL 就要寫成 @selector(writeHelloWorld:)。
enum {
UIControlEventTouchDown = 1 << 0,
UIControlEventTouchDownRepeat = 1 << 1,
UIControlEventTouchDragInside = 1 << 2,
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventTouchUpInside = 1 << 6,
UIControlEventTouchUpOutside = 1 << 7,
UIControlEventTouchCancel = 1 << 8,
UIControlEventValueChanged = 1 << 12,
UIControlEventEditingDidBegin = 1 << 16,
UIControlEventEditingChanged = 1 << 17,
UIControlEventEditingDidEnd = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19,
UIControlEventAllTouchEvents = 0x00000FFF,
UIControlEventAllEditingEvents = 0x000F0000,
UIControlEventApplicationReserved = 0x0F000000,
UIControlEventSystemReserved = 0xF0000000,
UIControlEventAllEvents = 0xFFFFFFFF
};
可能發生的事件很多,這次我們就設定在 UIControlEventTouchUpInside ,也就是當手指按下後離開 button 的那一個時間點。
[myButton addTarget:self action:@selector(writeHelloWorld) forControlEvents:UIControlEventTouchUpInside];
來達到我們設定 Target 的目的了。
留言列表