swift 触摸与手势

class MyView: UIView {

var lView:UIView!

var time:NSTimer!

override init(frame: CGRect) {

super.init(frame: frame)

//开启多点触控

self.multipleTouchEnabled = true

lView = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50));

lView.backgroundColor = UIColor.yellowColor();

self.addSubview(lView)

}

required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

}

//开始点击时,调用的方法

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

//        println(count)

//拿到一个UITouch对象

//        let touch:UITouch = touches.anyObject() as! UITouch;

let touch = touches.first as UITouch!

//拿到点击次数

let tapCount = touch.tapCount;

if (tapCount == 1)

{

//  单击 singleTap()

//使用定时器延时调用

time = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector:"singleTap", userInfo: nil, repeats: false)

}else

{

//终止定时器

time.invalidate()

doubleTap()

}

}

func singleTap() {

print("单击")

}

func doubleTap() {

print("双击")

}

//触摸移动时,调用的方法

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {

// var touch = touches.anyObject() as! UITouch

let touch = touches.first as UITouch!

let location = touch.locationInView(self)

// println("location: \(location.x), \(location.y), \(location)")

let lastLocation = touch.previousLocationInView(self)

// println("lastLocation: \(lastLocation.x), \(lastLocation.y), \(lastLocation)")

let sub = location.x - lastLocation.x

if sub > 0{

print("right")

}else if sub < 0 {

print("left")

}else {

print("move")

}

//让小矩形跟着手势移动  lView.center = location

lView.frame.origin = location

}

}

时间: 2024-08-03 19:52:05

swift 触摸与手势的相关文章

JavaScript触摸与手势事件

处理Touch事件能让你跟踪用户的每一根手指的位置.你可以绑定以下四种Touch事件: 1.touchstart:  // 手指放到屏幕上的时候触发 2.touchmove:  // 手指在屏幕上移动的时候触发 3.touchend:  // 手指从屏幕上拿起的时候触发 4touchcancel:  // 系统取消touch事件的时候触发.至于系统什么时候会取消,不详 属性 1.client / clientY:// 触摸点相对于浏览器窗口viewport的位置 2.pageX / pageY:

触摸、手势

触摸: 1.创建一个视图,重写TA在不同阶段的触发的方法,方法如下: 2.当重写触碰移动方法,想要实现一个视图随着自己的鼠标移动的方法时 获取触摸在屏幕上的手指对象: UITouch *tou = [touches anyObject]; (1)要获取手指移动之前的位置 之前的位置 = [tou previousLocationInView:self] (2)要获取手指移动之后的位置 之后的位置 = [tou locationInView]; (3)视图现在的位置的X值就是: 自己原来的位置 +

触摸,手势

- (void)viewDidLoad {    [super viewDidLoad];        UIImageView *imageView = [[[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 275, 500)] autorelease];    imageView.image = [UIImage imageNamed:@"love.jpg"];    imageView.userInteractionEnab

IOS 触摸与手势

触摸 响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为"响应者对象". UIApplication,UIViewController,UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件. UIView??????不接受触摸时间的三种情况?????????????????? •  ????不接受用户交互????????????userInteractionEnable = NO;??

Android 触摸及手势操作GestureDetector

转自:http://blog.csdn.net/xyz_lmn/article/details/16826669 现在的智能手机不敢说百分百的都是触摸屏,也应该是百分之九九以上为触摸屏了,触摸屏为我们操作无键盘.无鼠标的手机系统带来了很多的便利.当用户触摸屏幕时会产生很多的触摸事件,down.up.move等等.View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,如下

触摸与手势

1. 触摸 触摸(Cocoa Touch)就是用户手指放在屏幕上一直到手指离开.触摸是在UIView上进行的.当用户触摸到屏幕时,触模事件就会发生.本节将主要讲解触摸的阶段以及这些阶段所对应的的方法. 1.1 触摸阶段 当用户的手指放在屏幕上就实现了触摸,但是触摸并不是一直持续的.当手指离开屏幕这一次触摸就结束了.这一次触摸共分为5个阶段.如下表所示: 触摸的5个阶段 触摸阶段 功能 UITouchPhaseBegan 手指刚触摸到屏幕 UITouchPhaseMoved 手指在屏幕上移动 UI

javaScript事件(九)事件类型之触摸与手势事件

一.触摸事件 touchstart:当手指触摸屏幕时触发:即使已经有一个手指放在了屏幕上也会触发. touchmove:当手指在屏幕上滑动时连续地触发.在这个世界发生期间,调用preventDefault()可以阻止滚动. touchend:当手指在屏幕上移开时触发. touchcancel:当系统停止跟踪触摸时触发.关于此事件的确切触发时间,文档中没有明确说明. 上面这几个事件都会冒泡,也都可以取消.虽然这些触摸事件没有在DOM规范中定义,但它们却是以兼容DOM的方式实现的.因此,每个触摸事件

Swift - 触摸事件(点击,移动,抬起等)说明及用例

在iOS开发中,UIGestureRecognizer可以方便的响应处理手势事件. 而如果要想更精细的处理,我们还需要借助touchesBegan,touchesMoved,touchesEnded等触摸方法.这些方法 都是UIResponder中的方法.视图控制器和视图类,都是UIResponder的子类.正是这个类,让UIView等相关触摸事件得以响应. 具体方法介绍如下: 1,func touchesBegan(touches: NSSet, withEvent event: UIEven

IOS 手势-轻点、触摸、手势

1.概念 手势是从你用一个或多个手指接触屏幕时开始,直到手指离开屏幕为止所发生的所有事件.无论手势持续多长时间,只要一个或多个手指仍在屏幕上,这个手势就存在. 触摸是指把手指放到IOS设备的屏幕上,从屏幕上拖动或抬起的这样一种行为.手势中涉及的触摸数量等于同时位于屏幕上的手指数量. 手势识别器是一个对象,它知道如何观察用户生成的事件流,并能够识别用户何时以与预定义的手势相匹配的方式进行了触摸和拖动.在检测常见手势时,UIGestureRecognizer类及其各种子类可节省大量工作.UIGest