ios开发-事件机制
来源:互联网 发布:淘宝 软件 编辑:程序博客网 时间:2024/06/09 12:15
Android中的onTouch?onClick?
关于控件命名与修改的两种方式:一种在界面使用IBOutlet来拖拽控件,并命名,在使用过程中可以直接使用self.名称.属性来为控件赋值;另一种为控件设置tag,在ViewController.m文件中使用 控件类型* 目标控件=[self.view viewWithTag:设置的tag],目标控件.属性名="",来对控件显示进行修改。
ios中事件处理的三种方式
通过IBAction将控件的指定时间绑定到控制器的制定方法,当该控件上发生该事件时,将会激发控制器的对应方法。
在程序中为UI控件的特定事件绑定事件监听器
对于UI控件的某些生命周期事件,可以直接委托给对应的代理对象处理。
使用详解:1.使用IBAction绑定实现事件处理
添加button,拖拽,选择connection方式为action,命名事件的名称,后再ViewControler.m中重写该点击事件的方法体,实现需要的效果
2.使用代码设置事件处理方法
可以与用户交互的控件大都继承了UIControl基类,该类提供了注册、删除事件处理的方法
addTarget:action:forControlEvents:为当前UIControl控件指定事件注册事件的方法。其中方法中包含的三个参数如下:target--任意对象,该对象的方法作为事件处理的方法;action参数:该参数接受一个SEL参数,代表一个IBAction方法,表明将该IBAction方法作为事件处理方法;forControlEvents:该参数接受一个UIControlEvents类型的枚举值,该枚举值用于指定事件类型,表明为该重类型的事件绑定事件处理方法,该参数可接受的枚举值与事件类型(Touch Up Inside等)存在一一对应关系;
removeTarget:action:forControlEvents:删除当前UIControl控件的指定事件所注册的事件处理方法。
使用,在拖拽时将button不设置为action设置为IBOutlet,后再ViewController.m的viewDidLoad方法中使用[self.控件名 addTarget:self action:@selector(点击事件操作的方法名) forControlEvents:UIControlEventtTouchUpInside];然后写入点击引发的事件的方法。
实例如下:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"界面加载完成");
UILabel* myLab=(UILabel*)[self.view viewWithTag:12];
myLab.text=@"oh no";
self.textview.text=@"YES";
[self.touch addTarget:self action:@selector(Ontouch) forControlEvents:UIControlEventTouchUpInside];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)Ontouch:(UIButton*)send{
self.textview.text=@"hello";
}
两种方法的区别,IBAction相当于在内部已经定义了这个控件的名称,直接在内部实现了addtarget:.....这个方法,只需重写实现操作的方法即可;使用代码设置则需要制定控件的名称,然后给目标控件添加制定的方法。
- ios开发-事件机制
- iOS开发:深入浅出iOS事件机制
- 【iOS界面开发】iOS事件派发机制
- 【iOS-Cocos2d游戏开发】触屏事件处理机制
- 【iOS-Cocos2d游戏开发】触屏事件处理机制
- iOS开发系列课程(02) --- 视图交互和事件机制
- iOS事件响应机制
- iOS事件机制(一)
- iOS事件机制(一)
- iOS事件机制
- iOS事件机制
- ios事件传递机制
- iOS事件传递机制
- [iOS进阶]事件机制
- iOS事件机制(二)
- iOS事件处理机制
- iOS事件机制
- IOS事件机制
- python装饰器(decorator)
- 跳槽最惨的情况,不看要悲剧!
- JAVA基本数据类型和数据类型转换
- 4.临时构造器
- 链表的回文结构
- ios开发-事件机制
- 有关M Permission的学习
- extjs echarts highcharts 饼图
- Android recovery UI实现分析
- 如何解释“三门问题”
- ubuntu软件源更新及其中会遇到的各种问题(以下ID的密钥没有可用的公钥)
- 用PHP开发购物车网站(第三篇):零碎知识(1)
- hdu4587TWO NODES【割点】
- Dockerizing a Node.js web app