程序获取控件的两种方式
通过IBOutlet连接来获取控件
打开辅助编辑器(show the assistant editor),保证编辑区的左边显示界面设计文件,右边显示该界面设计文件对应控制器的接口部分,单击控件不放,并按住 Control 键,将控件拖至 @interface 和 @end 之间的空白处,填写好弹出窗口即可。
可通过连接检查器面板(Show the connections inspector)查看UI控件与IBOutlet属性之间的关联关系
通过Tag属性来获取控件
//借助viewWithTag: 方法即可通过UI控件的Tag属性获取该控件
UILabel* myLb = (UILabel*)[self.view viewWithTag:12];
//设置myLb的文本内容
[myLb setText:@"孙悟空"];
事件的处理方式
通过IBAction绑定实现时间处理
以连接IBOutlet相同的方式,连接IBAction与UI控件,之后在对应的控制器实现部分重写对应的IBAction方法
通过代码设置时间处理方法
IOS中能与用户互交的控件大多继承了UIControl基类,该类日提供了如下方法来注册:
- -addTarget:action:forControlEvents: 为当前UIControl控件的指定事件注册时间的处理方法
- -removeTarget:action:forControlEvents: 删除为当前UIControl控件指定事件所注册的时间处理方法
- addTarget: 该参数指定任意对象,表明以该对象的方法作为事件处理方法
- action: 该参数接受一个SEL参数,代表一个IBAction方法,表明将以该IBAction方法作为事件处理方法
- forControlEvents: 该参数接受一个UIControlEvents类型的枚举值,该枚举值用于指定时间类型,表明为此中类型的时间绑定事件处理方法。该参数可以接受的枚举值与connections inspector中的sent events存在一一对应关系
//为loginBn控件的UIControlEventTouchUpInside事件绑定事件处理方法
//以当前对象的loginHandler:方法作为时间处理方法
[self.loginBn addTarget:self action:@seletor(loginHandler:) forControlEvents:UIControlEventTouchUpInside];
通过委托对象来处理事件
类似于UITable控件这种拥有一些自身的特殊时间,不能用前两种途径实现,则可使用委托对象来处理,详细后解。