UITouch触摸事件

  • 主要为三个方法
1.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
2.
3. UITouch *touch = [touches anyObject];
4. CGPoint point = [touch locationInView:self];
5. start = point;
6. end = point;
7.
8.}
9.
10.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
11.
12. UITouch *touch = [touches anyObject];
13. CGPoint point = [touch locationInView:self];
14. end = point;
15.
16. [self setNeedsDisplay];
17.}
18.
19.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
20.
21. UITouch *touch = [touches anyObject];
22. CGPoint point = [touch locationInView:self];
23. end = point;
24.
25. [self setNeedsDisplay];
26.
27.
28.}
29.

  • 示例
1.#import "myView.h"
2.
3.@interface myView ()
4.{
5. CGPoint start;
6. CGPoint end;
7.}
8.@end
9.
10.
11.@implementation myView
12.
13.-(instancetype)initWithFrame:(CGRect)frame{
14. if (self = [super initWithFrame:frame]) {
15. self.backgroundColor = [UIColor whiteColor];
16. }
17. return self;
18.}
19.
20.
21.
22.-(void)drawRect:(CGRect)rect{
23.
24. if (start.x != end.x && start.y != end.y) {
25.
26. CGFloat w = fabs(end.x - start.x);
27. CGFloat h = fabs(end.y - start.y);
28.
29. CGFloat x = end.x < start.x ? end.x : start.x;
30. CGFloat y = end.y < start.y ? end.y : start.y;
31.
32. //画圆
33. UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:
34. CGRectMake(x, y, w, h)];
35.
36. //画方
37.// UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(x, y, w, h)];
38.
39. [[UIColor redColor] setStroke];
40. [path stroke];
41. }
42.
43.}
44.
45.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
46.
47. UITouch *touch = [touches anyObject];
48. CGPoint point = [touch locationInView:self];
49. start = point;
50. end = point;
51.
52.}
53.
54.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
55.
56. UITouch *touch = [touches anyObject];
57. CGPoint point = [touch locationInView:self];
58. end = point;
59.
60. [self setNeedsDisplay];
61.}
62.
63.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
64.
65. UITouch *touch = [touches anyObject];
66. CGPoint point = [touch locationInView:self];
67. end = point;
68.
69. [self setNeedsDisplay];
70.
71.
72.}
73.
74.
75.
76.
77.@end
78.

 

UITouch触摸事件的更多相关文章

  1. iOS开发——UI进阶篇(十二)事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

    触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponde ...

  2. 触摸事件UITouch的用法

    触摸屏幕是iOS设备接受用户输入的主要方式,包括单击.双击.拨动以及多点触摸等,这些操作都会产生触摸事件. 在Cocoa中,代表触摸对象的类是UITouch.当用户触摸屏幕后,就会产生相应的事件,所有 ...

  3. 触摸事件,手势识别(UITouch,UIGestureRecognizer)

    触摸发生时,UIWindow会有一个队列来存放所有的触摸事件,然后再把这些事件发送给对应的hit-test view,hit-test view会通过touch的四个函数来接收这些事件. 四个函数分别 ...

  4. 触摸事件UITouch的应用

    因为UIView或者UIViewController都是继承与UIResponder ,所以都有UITouch这个事件.当用户点击屏幕的时候,会产生触摸事件. 通过UITouch事件,可以监听到开始触 ...

  5. iOS:触摸控件UITouch、事件类UIEvent

    UITouch:触摸控件类   UIEvent:事件类 ❤️❤️❤️UITouch的介绍❤️❤️❤️ 一.触摸状态类型枚举 typedef NS_ENUM(NSInteger, UITouchPhas ...

  6. iOS 触摸事件与UIResponder(内容根据iOS编程编写)

    触摸事件 因为 UIView 是 UIResponder 的子类,所以覆盖以下四个方法就可以处理四种不同的触摸事件: 1.  一根手指或多根手指触摸屏幕 - (void)touchesBegan:(N ...

  7. iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

    -- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...

  8. iOS中响应者链条-触摸事件

    总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -& ...

  9. iOS触摸事件

    触摸常见的事件有以下几种,触摸事件一般写在view文件中,因为viewController文件有可能控制不止一个view,不适合写触摸事件 // 开始触摸 - (void)touchesBegan:( ...

随机推荐

  1. 只要是从事IT,会些CSS,XHTML总归是有好处的

    上次是十多年前看了的,这次又系统看了下.. 这系统的HEAD FIRST,我很喜欢...收藏过三四本啦...

  2. HTTP请求和响应详解

    HTTP有两部分组成:请求与响应,下面分别整理. 一.HTTP请求 1.HTTP请求格式: <request line> <headers> <blank line> ...

  3. IIS7.0出错的解决方案 IIS 状态代码:IIS详细错误代码以及解释

    一.请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found   1.单击 开始 . 在 开始搜索 框中, 键入 Notepad. 右击 记事本 , 然后单 ...

  4. QQ空间自动发广告解决方法

    最近空间好多人QQ都中了毒.每天我都有几十个好友刷空间话费.流量广告! QQ空间自动发广告的原因: 最近使用了刷赞或者其他QQ外挂软件(有些开发者或破解者会在这样的软件上留后门,请自己判断). 或者最 ...

  5. [Locked] Best Meeting Point

    Best Meeting Point A group of two or more people wants to meet and minimize the total travel distanc ...

  6. ltp工具使用配置

    ltp是一个比较全的自然语言处理工具,可以用它进行分词.词性标注.语法分析等任务. ---- 准备 下载 下载ltp和ltp4j,在cmake官网下载并安装相应版本的cmake,并且下载ant. 构建 ...

  7. Apache HBase 2015年发展回顾与未来展望

    编者按:高可用架构推出 2015 年度回顾系列文章,分享在架构领域具有典型意义的年度案例,本文由张虔熙分享.转载请注明来自高可用架构公众号「ArchNotes」.   张虔熙,Hulu 网,专注于分布 ...

  8. Java中对象的深复制和浅复制详解

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵ ...

  9. centos 5 yum安装与配置vsFTPd FTP服务器

    vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  10. 用Myeclipse 编写struts.xml时,自动提示

    之所以不自动提示,是因为这个xml它不知道自己的xml格式是什么有哪些标签,所以不知道该怎么提示 所以就要给它引入格式,所以要引入XSD或者DTD文件 1.首先打开MyEclipse的窗口,选择“Wi ...