UIControl

一、简介

<<UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton,UISwitch,UItextField等控件的父类,它本身包含了一些属性和方法,但是不能直接使用UIControl类,他只是定义了子类都需要使用的方法

<<继承关系:UIControl-->UIView-->UIResponder-->NSObject

格式为

1-->初始化(作用)

typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) {

UIDataDetectorTypePhoneNumber                                        = 1 << 0, //检测电话

UIDataDetectorTypeLink                                              = 1 << 1, //检测网址和邮箱

UIDataDetectorTypeAddress NS_ENUM_AVAILABLE_IOS(4_0)                = 1 << 2, // 检测地址

UIDataDetectorTypeCalendarEvent NS_ENUM_AVAILABLE_IOS(4_0)          = 1 << 3, // 检测日历

UIDataDetectorTypeShipmentTrackingNumber NS_ENUM_AVAILABLE_IOS(10_0) = 1 << 4, // 货物追踪号码检测

UIDataDetectorTypeFlightNumber NS_ENUM_AVAILABLE_IOS(10_0)          = 1 << 5, // 班机号码检测

UIDataDetectorTypeLookupSuggestion NS_ENUM_AVAILABLE_IOS(10_0)      = 1 << 6, //用户可能要查找的信息

UIDataDetectorTypeNone          = 0,              // 禁用检测

UIDataDetectorTypeAll          = NSUIntegerMax   // 检测所有类型链接

} __TVOS_PROHIBITED;

;(如果属性有枚举类型的话,这里会有枚举类型说明

@property (nonatomic) UIDataDetectorTypes dataDetectorTypes NS_AVAILABLE_IOS(3_0);// 设置提示文字    (这是说明

二、UIControl的文本属性(属性的顺序与苹果API一致)

1-->控制控件触摸事件

@property(nonatomic,getter=isEnabled) BOOL enabled; // 默认是 YES,要禁用控件,可以将enabled属性设置为NO,这将导致控件忽略任何触摸事件。被禁用后,控件还可以用不同的方式显示自己,比如变成灰色不可用

2-->设置该UIControl 控件是否被选中

@property(nonatomic,getter=isSelected) BOOL selected; //默认是 NO

3-->设置控件的高亮状态

@property(nonatomic,getter=isHighlighted) BOOL highlighted; // 默认是NO. 当触摸进入/退出时,它会自动被设置/清除。

4-->设置控件在垂直方向上如何布置自身的内容

typedef NS_ENUM(NSInteger, UIControlContentVerticalAlignment) {  

UIControlContentVerticalAlignmentCenter  =0,   // 居中对齐  

UIControlContentVerticalAlignmentTop     =1,   // 顶端对齐  

UIControlContentVerticalAlignmentBottom  =2,   // 底端对齐  

UIControlContentVerticalAlignmentFill    =3,   // 填满整个控件  

}; 

@property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment; //默认为 UIControlContentVerticalAlignmentCenter 居中

5-->设置控件在水平方向上如何布置自身的内容

typedef NS_ENUM(NSInteger, UIControlContentHorizontalAlignment) {  

UIControlContentHorizontalAlignmentCenter =0,   // 居中对齐  

UIControlContentHorizontalAlignmentLeft   =1,   // 左端对齐  

UIControlContentHorizontalAlignmentRight  =2,   // 右端对齐  

UIControlContentHorizontalAlignmentFill   =3,   // 填满整个控件  

}; 

@property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment; //默认为 UIControlContentHorizontalAlignmentCenter居中

6-->当前webview加载内容位置的url请求

NSURLRequest* request =webView.request;

@property (nullable, nonatomic, readonly, strong) NSURLRequest *request;

7-->effectiveContentHorizontalAlignment

@property(nonatomic, readonly) UIControlContentHorizontalAlignment effectiveContentHorizontalAlignment;

8-->获取控件的状态

typedef NS_OPTIONS(NSUInteger, UIControlState) {  

UIControlStateNormal       =0,        //   普通状态  

UIControlStateHighlighted  =1 << 0,   //   高亮状态  

UIControlStateDisabled     =1 << 1,   //   选中状态  

UIControlStateSelected     =1 << 2,   //   禁用状态  

UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3,  // 聚焦状态    

UIControlStateApplication  =0x00FF0000,   //   当用作应用标志时  

UIControlStateReserved     =0xFF000000    //   内部框架预留,无意义  

};

@property(nonatomic,readonly) UIControlState state; // could be more than one state (e.g. disabled|selected). synthesized from other flags.

9-->获取用户是否触及视图内容

@property(nonatomic,readonly,getter=isTracking) BOOL tracking;

10-->判断当前触摸点是否在控件区域类

@property(nonatomic,readonly,getter=isTouchInside) BOOL touchInside; // valid during tracking only

11-->用户开始触碰时激发

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(nullable UIEvent *)event;

12-->用户连续触碰时激发

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(nullable UIEvent *)event;

13-->用户结束触碰时激发

- (void)endTrackingWithTouch:(nullable UITouch *)touch withEvent:(nullable UIEvent *)event; // touch is sometimes nil if cancelTracking calls through to this

14-->监测到取消触摸事件

- (void)cancelTrackingWithEvent:(nullable UIEvent *)event; // event may be nil if cancelled for non-event reasons, e.g. removed from window

15-->添加 目标-动作对为不同的事件类型

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {  

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,     // 当控件的值在发生改变时,用于滑块、分段控件、以及娶她取值控件  

UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13, // semantic action: for buttons, etc.  

UIControlEventEditingDidBegin          =1 << 16,     // 当文本控件开始编辑时,用于 UITextField  

UIControlEventEditingChanged           =1 << 17,     // 当文本控件的文本被改变时,用于 UITextField  

UIControlEventEditingDidEnd            =1 << 18,     // 当文本控件结束编辑时,用于 UITextField  

UIControlEventEditingDidEndOnExit      =1 << 19,     // 当文本控件内通过按下回车键结束编辑时  

UIControlEventAllTouchEvents           =0x00000FFF,  // 通知所有关于触摸的事件  

UIControlEventAllEditingEvents         =0x000F0000,  // 通知所有关于文本编辑的事件  

UIControlEventApplicationReserved      =0x0F000000,  // range available for application use  

UIControlEventSystemReserved           =0xF0000000,  // range reserved for internal framework use  

UIControlEventAllEvents                =0xFFFFFFFF   // 通知所有事件  

};  

- (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

16-->删除 目标-动作对为不同的状态

- (void)removeTarget:(nullable id)target action:(nullable SEL)action forControlEvents:(UIControlEvents)controlEvents;

17-->)获取所有的目标集合

@property(nonatomic,readonly) NSSet *allTargets;

18-->获取所有的事件类型

@property(nonatomic,readonly) UIControlEvents allControlEvents; // list of all events that have at least one action

19-->获取某个target对象及事件相关的所有action

- (nullable NSArray *)actionsForTarget:(nullable id)target forControlEvent:(UIControlEvents)controlEvent; // single event. returns NSArray of NSString selector names. returns nil if none

20-->传递事件消息,是监听到事件后最先调用的方法,并且它是随着事件的重复产生而频繁调用的

- (void)sendAction:(SEL)action to:(nullable id)target forEvent:(nullable UIEvent *)event;

21-->发送相应通知,通过控件的代码可以指定时间目标,这个通知将被传播到这些指定的目标

- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents; // send all actions associated with events

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • // //UIView.h //UIKit // //Copyright (c) 2005-2015 Apple ...
    李某lkb阅读 1,668评论 0 0
  • 一、简介 <<UITableView(或简单地说,表视图)的一个实例是用于显示和编辑分层列出的信息的一种手段 <<...
    无邪8阅读 10,467评论 3 3
  • UIView全部API的翻译(1) UIView是iOS系统界面元素的基础,所有的界面元素都是继承于...
    Dear丶Musk阅读 948评论 1 1
  • 一、简介 <<UIButton(按钮) : 既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置,实现了监...
    无邪8阅读 5,555评论 0 2
  • 一、简介 <<继承关系:UIScrollView --> UIView-->UIResponder-->NSObj...
    无邪8阅读 1,787评论 0 0