IOS-笔记8(手势)

Gestures

      使用UIGestureRecogninzer的子类来识别不同类型的手势,使用手势一般分为两步:

      首先将手势识别器加到需要识别手势的View上,这通常由一个Controller来完成。在将视图从StoryBoard拖进Controller类中时,我们使用属性监听器中的didSet来设置其绑定的接下来写一个方法来处理识别到手势的操作,这件事有时由View来完成,有时由Controller来完成。看需要做什么操作。

@IBOutlet weak var faceView: FaceView!{
    didSet{//didset会在IOS初始化时设置faceView这个变量时执行,恰巧就是我们需要的时机   
    faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: "scale:"))
    //设置手势变化时执行操作的类和方法,方法一般需要将手势传进去以获得手势的状态,属性值和方法等,这时需要加上:
    }
}
在这里因为是缩放手势,不需要Controller来做什么控制,所以直接在View里实现就可以了。

给视图添加手势这种事也可以在StoryBoard里直接拖进这个View,它会出现在顶部,再将它拖到你想实现它的类的代码里就可以了

现有的手势有:pinch,rotation,Swipe(设置Swipe时要发送一些额外的信息:手指数目和方向),Tap(设置点击次数)。

func scale(gesture: UIPinchGestureRecognizer){//缩放手势的实现函数
    if gesture.state == .Changed { //获得手势的状态来做相应的改变
        scale *= gesture.scale //获得手势的各种属性和方法
        gesture.scale = 1
    }
}
对于每一种手势,都有对应的方法,父类还提供手势的状态:possible,recognized,begin,change,end,还有failed,Cancelled等


你可能感兴趣的:(IOS-笔记8(手势))