手势识别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. 完整代码
和第一部分一样, 就不在列出了