借鉴作者kirito_song 不是作者原著 来自摘抄
UIControl
-
contentVerticalAlignment
内容的垂直对齐方式
-
contentHorizontalAlignment
内容的水平对齐方式
-
effectiveContentHorizontalAlignment
返回控件内容有效的水平对齐方向
- (void)addTarget:(id)target
action:(SEL)action
forControlEvents:(UIControlEvents)controlEvents;
target 目标对象 如果是nil 则UIKit会在响应链中一次搜索能够响应action的对象并将消息传递给该对象
action 处理消息的方法选择器 不可为nil
controlEvents 需要处理的事件类型
-
-actionsForTarget:forControlEvent
返回指定target某个event下所注册的action(字符串)数组
target 参数不可为nil
-
allControlEvents
返回控件被注册的事件类型
-
allTargets
返回所有注册的target
@property(nonatomic, readonly) NSSet *allTargets;
触发操作
-
-sendAction:to:forEvent:
调用指定target的action
- (void)sendAction:(SEL)action
to:(id)target
forEvent:(UIEvent *)event;
-
-sendActionsForControlEvents"
强制调用指定Event事件相关的Target-Action
遍历控件的Targets和Actions 并为由UIApplication向每个与controlEvents事件相关联的Targets调用sendAction:to:forEvents:方法
事件的跟踪
开始 移动 结束 取消四种状态的获取
-
-beginTrackingWithTouch:withEvent:
决定控件是否继续跟踪触摸事件
此值用于更新控件的跟踪属性tracking
1.返回NO会直接丢弃事件
如果你想让下方的另一个对象尝试响应
可以返回YES并重载
-sendAction:to:forEvent:
并将target参数设置为nil
2.依赖于touchesBegan:withEvent:
这里需要注意super touchesBegan:withEvent
的调用是充分条件 而不是充要条件 不然UIView的覆盖 就不会影响到下方UIButton的点击效果了
3.触发的事件类型UIControlEventTouchDown
-
-continueTrackingWithTouch:withEvent:
触摸事件更新时调用
-
- endTrackingWithTouch:withEvent:
触摸事件结束时调用
-
- cancelTrackingWithEvent:
触摸事件被取消时调用
UIButton的事件的详细解析
UIControlEventTouchDown:
按钮点下就调用
UIControlEventTouchUpInside:
在按钮范围内松开手指调用
UIControlEventTouchUpOutside:
在按钮范围外松开手指调用
UIControlEventTouchCancel:
按钮touch事件被取消调用
UIControlEventTouchDragInside:
点击按钮后,在按钮范围内拖动反复调用
UIControlEventTouchDragOutside:
点击按钮后,在按钮范围外拖动反复调用
UIControlEventTouchDragEnter:
点按钮后,拖动到按钮范围外又拖动回按钮返回内跨越边界时调用一次
UIControlEventTouchDragExit:
点击按钮,从按钮范围内拖动到按钮范围外跨越边界时调用一次
网友评论