直接上代码:

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. 紫书 例题 10-17 UVa 1639(数学期望+分数处理+处理溢出)

    设当前有k个,那么也就是说拿到其他图案的可能是(n-k)/n 那么要拿到一个就要拿n/(n-k)次 所以答案就是n(1/n + 1/(n-1) ......1/2 + 1 / 1) 看起来很简单,但是 ...

  2. [JLOI2015]装备购买(线性基)

    [JLOI2015]装备购买 题目描述 脸哥最近在玩一款神奇的游戏,这个游戏里有 nn 件装备,每件装备有 \(m\) 个属性,用向量 \(\mathbf{z_i}\)=\((a_1, \ldots ...

  3. 用JS中的cookie实现商品的浏览记录

    最近在做一个购物车效果,为了实现商品的浏览记录效果可是让我百般周折,避免以后忘记特写此随笔与大家共享,希望博友们看后有所收获. 第一步:在一个公用的js文件下getCookie(“liulan”),c ...

  4. maven中使用mybatis

    1.Mybatis优缺点 优点: Mybatis实现了对Dao层的封装,隔离了SQL语句,便于管理,避免了像JDBC那样操作数据集,便于扩展等等. 缺点: Mybatis属于?半自动“ORM”,比Hi ...

  5. 简单的字符串压缩--C代码

    #include <stdio.h> #include <string.h> bool compress(char *str) { char *p=str,c; ; if(!s ...

  6. SQL SERVER 新增表、新增字段、修改字段 判断表是否存在

    // 新增之前判断表是否存在 IF NOT EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID('tb_MessageHistory')) ...

  7. ES6学习笔记(九)Set和Map数据结构

    1.set 基本等于Java的Set集合类型,无序不可重复集,常被用来去重. 基本用法 const s = new Set();//通过Set()构造函数创建 [2, 3, 5, 4, 5, 2, 2 ...

  8. HDU——T 1166 敌兵布阵

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...

  9. Android性能优化之提高ListView性能的技巧

    ListView优化一直是一个老生常谈的问题.无论是面试还是寻常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看怎样最大化的优化ListView的性能. 1.在adapter中的ge ...

  10. Codeforces 164 D Minimum Diameter

    题目链接~~> 做题感悟:越来越感觉CF的题非常好,非常有深度. 解题思路: 这题须要注意 k 的大小.由于 k 仅仅有 30 个,终于形成的点的直径一定是某个确定的值,所以我们能够枚举这个值. ...