测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2016年11月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由 Daniel Clelland 维护。
DirectedPinchGestureRecognizer 是一个 UIPinchGestureRecognizer 子类,在 Swift 3 中提供了更丰富的 API 来处理捏合手势。
let gestureRecognizer = DirectedPinchGestureRecognizer()
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
pod 'DirectedPinchGestureRecognizer', '~> 1.0'
let gestureRecognizer = DirectedPinchGestureRecognizer()
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
✓ 跟踪手势的初始状态
if (gestureRecognizer.initialAxis == .horizontal) {
if (gestureRecognizer.axis == .vertical) {
print("Gesture recognizer started pinching horizontally and then rotated to a vertical axis")
}
}
✓ 强制手势的起始方向和轴x
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
switch gestureRecognizer {
case let pinchGestureRecognizer as DirectedPinchGestureRecognizer where pinchGestureRecognizer == self.pinchGestureRecognizer
return pinchGestureRecognizer.direction == .outwards && pinchGestureRecognizer.axis == .vertical
default:
return true
}
}
✓ 为 start
、update
、cancel
和 finish
事件实现代理协议方法
func directedPinchGestureRecognizer(didStart gestureRecognizer: DirectedPinchGestureRecognizer) {
print("Gesture recognizer started")
}
func directedPinchGestureRecognizer(didUpdate gestureRecognizer: DirectedPinchGestureRecognizer) {
print("Gesture recognizer updated")
}
func directedPinchGestureRecognizer(didCancel gestureRecognizer: DirectedPinchGestureRecognizer) {
print("Gesture recognizer cancelled")
}
func directedPinchGestureRecognizer(didFinish gestureRecognizer: DirectedPinchGestureRecognizer) {
print("Gesture recognizer finished")
}
✓ 为 location
、locations
、direction
、axis
、linearScale
(以像素为单位的缩放)和 geometricScale
(无量纲单位)提供便利方法
let location = gestureRecognizer.location // CGPoint?
let locations = gestureRecognizer.locations // (CGPoint, CGPoint)?
let direction = gestureRecognizer.direction // DirectedPinchGestureRecognizer.Direction?
let axis = gestureRecognizer.axis // DirectedPinchGestureRecognizer.Axis?
let linearScale = gestureRecognizer.linearScale(inAxis: .vertical, andDirection: .outwards) // CGFloat
let geometricScale = gestureRecognizer.geometricrScale(inAxis: .vertical, andDirection: .outwards) // CGFloat
✓ 为强制最小线性/几何缩放提供 IBDesignable
参数
gestureRecognizer.minimumLinearScale = 64.0
gestureRecognizer.minimumGeometricScale = 1.0