UIControl

作者: 纳兰沫 | 来源:发表于2019-01-03 15:24 被阅读3次

    借鉴作者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:点击按钮,从按钮范围内拖动到按钮范围外跨越边界时调用一次

    相关文章

      网友评论

          本文标题:UIControl

          本文链接:https://www.haomeiwen.com/subject/bmttrqtx.html