您的位置:首页 > 产品设计 > UI/UE

20. 手势识别之UISwipeGestureRecognizer

2016-03-08 22:07 375 查看

手势识别UIGestureRecognizer

iOS中, 手势识别主要使用UIGestureRecognizer, 我们一般使用它的子类, 现在我们学习使用UISwipeGestureRecognizer滑动手势

1. UISwipeGestureRecognizer的使用

import UIKit

class ViewController: UIViewController {

var label: UILabel?

override func viewDidLoad() {
super.viewDidLoad()

label = UILabel(frame: CGRect(x: 20, y: 20, width: 300, height: 60))
label?.textAlignment = .Center
self.view.addSubview(label!)

let swipeLeft = UISwipeGestureRecognizer(target: self, action: "swipeAction:")
swipeLeft.direction = .Left
self.view.addGestureRecognizer(swipeLeft)

let swipeRight = UISwipeGestureRecognizer(target: self, action: "swipeAction:")
swipeRight.direction = .Right
self.view.addGestureRecognizer(swipeRight)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func swipeAction(gestureRecognizer: UISwipeGestureRecognizer) {
if gestureRecognizer.direction == .Left {
self.label?.text = "左滑"
return
}

if gestureRecognizer.direction == .Right {
self.label?.text = "右滑"
return
}

}

}


它的使用非常简单, 初始化设置target和action, 然后设置检测方向, 最后在view上addGestureRecognizer将手势添加上即可

运行程序



2. UISwipeGestureRecognizer详解

我们查看UISwipeGestureRecognizer的定义

@available(iOS 3.2, *)
public class UISwipeGestureRecognizer : UIGestureRecognizer {
// 指定需要滑动的手指数目,默认为1
public var numberOfTouchesRequired: Int

// 设置识别的方向, 默认是UISwipeGestureRecognizerDirectionRight
public var direction: UISwipeGestureRecognizerDirection
}


我们查看UISwipeGestureRecognizerDirection的定义

public struct UISwipeGestureRecognizerDirection : OptionSetType {
public init(rawValue: UInt)

public static var Right: UISwipeGestureRecognizerDirection { get }
public static var Left: UISwipeGestureRecognizerDirection { get }
public static var Up: UISwipeGestureRecognizerDirection { get }
public static var Down: UISwipeGestureRecognizerDirection { get }
}


我们可以看出, 滑动手势可以识别上下左右的滑动.

3. 完整代码

和第一部分一样, 就不在列出了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息