首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

iPhone开发进阶(八)- 检测屏幕触摸事件

2012-07-03 
iPhone开发进阶(8)--- 检测屏幕触摸事件From:http://www.2cto.com/kf/201110/108295.html?这一回来定制UIV

iPhone开发进阶(8)--- 检测屏幕触摸事件

From:http://www.2cto.com/kf/201110/108295.html

?

这一回来定制UIView 上的触摸事件,作为例子,只是简单地检测出触摸事件并显示当前坐标在控制台上。

?

首先添加新文件,如下图:


iPhone开发进阶(八)- 检测屏幕触摸事件??????

?

在显示的对话框中选中Cocoa Touch Class 的Objective C class ?UIView

?

??????iPhone开发进阶(八)- 检测屏幕触摸事件在项目的添加菜单中选择Touch 。检测触摸时间需要实现下面的函数。

?

?

?- (void)touchesBegan:(NSSet *)touches

withEvent:(UIEvent *)event;

这个函数由用户触摸屏幕以后立刻被调到。为了自定义他的行为,我们像下面来实现:

?- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

??? UITouch* touch = [touches anyObject];

??? CGPoint pt = [touch locationInView:self];

??? printf("point = %lf,%lf\n", pt.x, pt.y);

}

上面的代码将触摸点的坐标取出,并打印到控制台上。

?

如果需要得到多点触摸(不只是一根手指)的信息,需要使用anyObject 实例指定UIView。

?

另外,TouchAppDelegate 的applicationDidFinishLaunching 函数像下面一样实现:

?

?- (void)applicationDidFinishLaunching:(UIApplication *)application {

??? TouchView* view = [[TouchView alloc]

??????? initWithFrame:CGRectMake(100, 100, 200, 200)];

??? view.backgroundColor = [UIColor greenColor];

??? [window addSubview:view];

??? [window makeKeyAndVisible];

??? [view release];

}

这里用intiWithFrame 指定的矩形区域可以任意。另外为了明确触摸的区域大小,设定其view.backgroundColor。

?

虽然通过initWithFrame 在TouchAppDelegate 内创建了TouchView 的实例、但是通过addSubview:view 将管理责任交给了window 。就是说,TouchAppDelegate 与window 两个实例都对TouchView 实例实施管理。所以这里用[view release] 释放TouchAppDelegate 的管理责任

摘自:易飞扬

热点排行