OC_UIControl

简介

UIControl 是很多能够实现动作和反馈的 UI 控件的基类,它继承于 UIView ,并且有许多常用的子类控件,例如 UIButtonUISwitchUISlider 等,是实现交互的重要的类。

特点

UIControl 具有的最大特点即 addTarget 方法:

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
复制代码

他可以用来监听交互事件并且触发对应的方法,是我们常用的方法。

而其中监听的交互事件 controlEvents 为 UIControlEvents 的枚举类型包含:

  • UIControlEventTouchDown : 点击按钮时触发
  • UIControlEventTouchDownRepeat :多点触控时
  • UIControlEventTouchDragInside : 在控件内拖动时
  • UIControlEventTouchDragOutside : 在控件外拖动时
  • UIControlEventTouchDragEnter : 拖动到控件内部时
  • UIControlEventTouchDragExit : 拖出控件内部时
  • UIControlEventTouchUpInside : 在控件内点击并抬起时,最常用
  • UIControlEventTouchUpOutside : 在空间内点击并在控件外抬起
  • UIControlEventTouchCancel : 点击取消时
  • UIControlEventValueChanged : 在控件的value属性改变时
  • UIControlEventEditingDidBegin : 控件开始编辑时
  • UIControlEventEditingChanged : 控件内编辑的内容改变时
  • UIControlEventEditingDidEnd : 完成编辑时
  • UIControlEventEditingDidOnExit : 结束编辑时
  • UIControlEventAlltouchEvents: 所有点击事件
  • UIControlEventAllEditingEvents : 所有编辑事件
  • UIControlEventAllEvents : 所有事件

同时,控件支持的与用户交互的能力,还由控件的状态决定。控件的状态由控件的 state 属性决定,state 属性的类型为 UIControlState 枚举类型,其中常用的有:

  • UIControlStateNormal : 普通状态下
  • UIControlStateHighlighted : 高亮状态下
  • UIControlStateDisabled : 禁用状态下
  • UIControlStateSelected : 选择状态下
  • UIControlStateFocused : 聚焦状态下

UIControl的属性

属性 类型 解释
state UIControlState 只读,当前控件的状态
enabled BOOL 控件是否可用
selected BOOL 控件是否被选择
highlighted BOOL 控件是否高亮
contentVerticalAlignment UIControlContentVerticalAlignment 控件垂直对齐
contentHorizontalAlignment UIControlContentHorizontalAlignment 控件水平对齐
effectiveContentHorizontalAlignment UIControlContentHorizontalAlignment 获取当前水平对齐方式
allTargets NSSet 获取所有的 target
allControlEvents UIControlEvents 获取所有的 controlEvents
tracking BOOL 只读,控件是否跟踪触摸事件
touchInside BOOL 只读,是否在控件内触摸

UIControlContentVerticalAlignment 包含:

  • UIControlContentVerticalAlignmentCenter : 中间对齐
  • UIControlContentVerticalAlignmentTop : 顶部对齐
  • UIControlContentVerticalAlignmentBottom : 下部对齐
  • UIControlContentVerticalAlignmentFill : 拉伸填充

UIControlContentHorizontalAlignment 包含:

  • UIControlContentHorizontalAlignmentCenter : 居中
  • UIControlContentHorizontalAlignmentLeft :左对齐
  • UIControlContentHorizontalAlignmentRight : 右对齐
  • UIControlContentHorizontalAlignmentFill :拉伸填充
  • UIControlContentHorizontalAlignmentLeading :与前缘保持一致
  • UIControlContentHorizontalAlignmentTrailing : 与后缘保持一致

UIControl的常用方法

  • 为控件添加 Target

    - (void)addTarget:(id)target 
               action:(SEL)action 
     forControlEvents:(UIControlEvents)controlEvents;
    复制代码
  • 移除指定 Target

    - (void)removeTarget:(id)target 
              action:(SEL)action 
    forControlEvents:(UIControlEvents)controlEvents;
    复制代码

猜你喜欢

转载自blog.csdn.net/weixin_34234721/article/details/91385639