标签:包含 icon 控件 led href imageview rem ddt 触摸事件
UIControl与Target-Action模式
使用addTarget:action:forControlEvents
方法来设置某一个controlEvent对应的方法(action)及要相应这个事件的target。
target一般是包含uicontrol的rootview对应的vc。
action有以下三种类型。其中sender对应uicontrol,event对应相应的事件
- (IBAction)doSomething;
- (IBAction)doSomething:(id)sender;
- (IBAction)doSomething:(id)sender forEvent:(UIEvent*)event;
UIControl的State
UIControl可以同时处于两个状态。链接
添加target-action
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
target
要被作用的target,即这个target对应的action要被调用。若为nil,那么系统会顺着响应链寻找。action
要被调用的方法,不能是nil。controlEvents
可以包含多个controlEvent,即可以同时为多个controlEvent指定事件 。移除target-action
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
target
要被移除的target,若为nil,哪么移除对应controlEvent的所有targetaction
要被移除的action。人为触发事件
- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event;
对指定的target调用指定的action。event可以为nil。- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents;
遍历这个UIControl的所有target,若对controlEvent指定了对应的action,调用上一个方法。状态循环
一般如果是由Touch Up Inside触发的事件:
链接:https://www.zhihu.com/question/25284619/answer/30370393
标签:包含 icon 控件 led href imageview rem ddt 触摸事件
原文地址:http://www.cnblogs.com/huahuahu/p/UIControl-bi-ji.html