学习iOS开发的第18天
来源:互联网 发布:羽绒服局部清洗 知乎 编辑:程序博客网 时间:2024/05/22 13:35
今天学习了一下触摸事件,下面打下代码测试下。
UIView中有很多触摸事件的方法,我们只要覆盖它就能执行相应操作。有触摸开始的方法,有触摸移动的方法,还有触摸结束的方法。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;首先我们建一个项目,然后新建一个类继承于UIView,然后我们再这个视图中再添加一个小的子视图。
//插入子视图 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; view.backgroundColor = [UIColor redColor]; view.tag = 100; [self addSubview:view];接着,我们覆盖触摸开始的方法,在里面实现操作,改变子视图颜色。其中通过tapCount方法获得点击次数,来判断单击还是双击。
//点击开始-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ //获得点击 UITouch *touch = [touches anyObject]; //计数 int count = touch.tapCount; //单击 if (count==1) { //延迟0.5秒执行单击方法 [self performSelector:@selector(singleTap) withObject:nil afterDelay:0.5]; } else if(count==2){ //取消单击方法 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTap) object:nil]; //执行双击方法 [self doubleTap]; }}单击方法要延迟执行,因为要判断是否是双击,如果双击,就取消单击方法的执行。
下面编写单击方法和双击方法,它们会改变让子视图有不同颜色。
//单击方法-(void)singleTap{ NSLog(@"单击"); UIView *view = [self viewWithTag:100]; view.backgroundColor = [UIColor blueColor];}//双击方法-(void)doubleTap{ NSLog(@"双击"); UIView *view = [self viewWithTag:100]; view.backgroundColor = [UIColor redColor];}我们做一个触摸移动时的操作。让子视图随着触摸而移动。
//触摸移动-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject]; //获得当前触摸的坐标 CGPoint point = [touch locationInView:self]; UIView *view = [self viewWithTag:100]; CGRect frame = view.frame; frame.origin = point; //设置坐标 view.frame = frame;}通过locationInView:方法获得触摸的坐标,然后改变子视图的坐标。
最后,我们在应用程序的代理类中创建视图。
MainView *view = [[MainView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; view.backgroundColor = [UIColor yellowColor]; [self.window addSubview:view];运行,当我们单击时,子视图变成蓝色,双击变成红色。点击并移动,子视图也会跟着移动。
运行结果截图:
0 0
- 学习iOS开发的第18天
- 学习iOS开发的第1天
- 学习IOS开发的第2天
- 学习iOS开发的第3天
- 学习IOS开发的第4天
- 学习IOS开发的第5天
- 学习IOS开发的第7天
- 学习IOS开发的第9天
- 学习IOS开发的第10天
- 学习IOS开发的第11天
- 学习IOS开发的第12天
- 学习IOS开发的第13天
- 学习IOS开发的第14天
- 学习iOS开发的第15天
- 学习iOS开发的第16天
- 学习iOS开发的第17天
- 学习iOS开发的第19天
- 学习iOS开发的第20天
- Remove Duplicates from Sorted List
- Java HashMap的死循环
- 相思柳,情倚春深处
- workers.properties配置
- cursor 的moveToFirst和moveToNext和moveToPrevious以及moveToLast
- 学习iOS开发的第18天
- c++继承中析构函数的调用顺序
- Windows下Apache与Tomcat的整合
- QObject 之 Thread依附性
- Linux下JAVA安装
- 第四周作业
- CSDN个人资料F5刷新
- 面试准备之常见上机题目搜罗(一)
- morris后续遍历