直接上代码:

touch 的四大状态。:
//
// TouchView.m
// UI_practice_04
//
// Created by lanouhn on 15/4/22.
// Copyright (c) 2015年 huangyankai. All rights reserved.
// #import "TouchView.h"
//延展
@interface TouchView ()
@property (nonatomic,assign) CGPoint startPoint;//记录当前起始点坐标 @end @implementation TouchView
//方法是功能片段的封装。
//触摸開始 表示手指接触到屏幕时,会触发
//图层 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"%s",__FUNCTION__);
// CGcolor还有一个框架 给UIColor发一个消息,转化为CGColor 设置阴影
// 设置阴影的颜色
self.layer.shadowColor = [[UIColor lightGrayColor] CGColor];
// 设置阴影的偏移量
self.layer.shadowOffset = CGSizeMake(10, 10);
// 设置阴影不透明度
self.layer.shadowOpacity = 0.9;
// 角半径
self.layer.cornerRadius = 100; UITouch *aTouch = [touches anyObject];
// 获取触摸開始点并保存
self.startPoint = [aTouch locationInView:self.superview];
} //触摸移动,当手指触摸屏幕并产生移动的时候,会反复调用此方法
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"%s",__FUNCTION__);
UITouch *aTouch = [touches anyObject];
// 父视图上的一个点
CGPoint currentPoint = [aTouch locationInView:self.superview];
// 通过移动产生的当前触摸点和上一个触摸点的X和Y轴的增量
CGFloat delta_x = currentPoint.x - self.startPoint.x;
CGFloat delta_y = currentPoint.y - self.startPoint.y;
// 通过视图当前起始点坐标以及delta_x和delta_y来推算新的起始点坐标
CGRect frame = self.frame;
frame.origin.x += delta_x;
frame.origin.y += delta_y;
self.frame = frame;
// 将当前点保存下来。成为下一次移动产生的新的点的计算增量根据
self.startPoint = currentPoint; } //触摸结束。表示手指离开屏幕时触发
//NSSet集合,无序性
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"%s",__FUNCTION__);
self.layer.shadowColor = nil;
self.layer.shadowOffset = CGSizeZero;
self.layer.shadowOpacity = 0; }
//触摸取消,表示此时手指并未离开屏幕,可是因为一些打断(来电话)而失去与该视图的交互
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"%s",__FUNCTION__);
}
@end

UITouch 的使用的更多相关文章

  1. 你真的了解UIEvent、UITouch吗?

    一:首先查看一下关于UIEvent的定义 //事件类型 typedef NS_ENUM(NSInteger, UIEventType) { UIEventTypeTouches, UIEventTyp ...

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

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

  3. iOS - UITouch

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITouch : NSObject @available(iOS 2.0, *) public class UIT ...

  4. UITouch的用法

    UITouch一般无法直接获取,是通过UIView的touchesBegan等函数获得. //这四个方法是UIResponder中得方法 // Generally, all responders wh ...

  5. 触摸事件UITouch的用法

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

  6. UITouch 触摸事件处理(实例)

    来源:http://www.open-open.com/lib/view/open1341882439838.html 1. UITouch 的主要方法: - (void)touchesBegan:( ...

  7. UITouch触摸事件

    UITouch触摸事件 主要为三个方法 1.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{2.3. UITouch * ...

  8. UITouch附加

    框架 /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKNode.h 概览 重要提示:这是一个初步的 ...

  9. UITouch - BNR

    本节任务:创建一个视图,让用户在视图上拖动手指来画线. UIView类能够重载4个方法来处理不同的触摸事件. - (void)touchesBegan:(NSSet *)touches withEve ...

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

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

随机推荐

  1. 第五讲 自对偶的Yang-Mills方程及Polyakov和t'Hooft解

    $\newcommand{\R}{\mathbb{R}}$以下我们考虑的是$\R^4$或者$S^4$上的Yang-Mills泛函,它们是共形不变的. 一.自对偶和反自对偶 我们寻找$\R^4$或$S^ ...

  2. Linux下FTPserver的实现(仿vsftpd)

    继上一篇博文实现Linux下的shell后,我们进一步利用网络编程和系统编程的知识实现Linux下的FTPserver.我们以vsftpd为原型并实现了其大部分的功能.因为篇幅和时间的关系,这里不再一 ...

  3. [Teamcenter 2007 开发实战] 调用web service

    前言 在TC的服务端开发中, 能够使用gsoap 来调用web service. 怎样使用 gsoap  , 參考 gsoap 实现 C/C++ 调用web service 接下来介绍怎样在TC中进行 ...

  4. Cocos2d-x第三方类库不支持arm64的问题解决(64位架构)

    32位能够兼容64位操作系统. ipad mini2 64位编译有问题. 各种第三方库不支持64位操作系统. 设置build setting 直接上图:

  5. IIS 无法读取配置节"system.web.extensions",由于它缺少节声明

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 今天在本地安装iis.搭建站点,应用程序的时候报错以下的错误: server错误 Internet ...

  6. 分布式架构中shiro

    分布式架构中shiro 前言:前段时间在搭建公司游戏框架安全验证的时候,就想到之前web最火的shiro框架,虽然后面实践发现在netty中不太适用,最后自己模仿shiro写了一个缩减版的,但是中间花 ...

  7. HDU 5375 Gray Code 动归

    题意:给你一串不确定的二进制码,其对应的格雷码的每一位有对应的权值,问转换成的格雷码的能取到的最大权值是多少. 思路:没有思路,乱搞也AC #pragma comment(linker, " ...

  8. 线程框架Executor的用法举例

    java5线程框架Executor的用法举例 Executor 是 java5 下的一个多任务并发执行框架(Doug Lea),可以建立一个类似数据库连接池的线程池来执行任务.这个框架主要由三个接口和 ...

  9. 基于CANopen DSP402的运动控制笔记

    常用的mode of operation 有以下几种: 控制字 control word: 6--------------7---------------15--------------------7 ...

  10. ivms4200 远程桌面访问测试过程及问题汇总

    17.11.4 测试存储服务器配置后能否自动录像确认 10:34   4200客户端关闭 10:40  打开4200客户端软件 10:51   关机 10:56  开机,有提示出现,“防火墙阻止... ...