Tactile 是响应手势和控制事件更安全、更符合习惯的方式。它可以让您在编译时捕获错误,并编写更具表达力的代码。
view.pan([
.began: panBegan,
.changed: panChanged,
.ended: panEnded
])
// func panBegan(pan: UIPanGestureRecognizer)
// func panChanged(pan: UIPanGestureRecognizer)
// func panEnded(pan: UIPanGestureRecognizer)
用法
Tactile 扩展了 UIView
和 UIControl
类。
UIView 扩展
on
方法
使用 on
方法添加手势识别器。
on(gesture:callback:)
let tap = UITapGestureRecognizer()
tap.numberOfTapsRequired = 3
tap.numberOfTouchesRequired = 2
view.on(tap, tapped)
// func tapped(tap: UITapGestureRecognizer)
on(gesture:state:callback:)
let pinch = UIPinchGestureRecognizer()
view.on(pinch, .began, pinchBegan)
// func pinchBegan(pinch: UIPinchGestureRecognizer)
on(gesture:states:callback:)
let pan = UIPanGestureRecognizer()
view.on(pan, [.began, .ended], panBeganOrEnded)
// func panBeganOrEnded(pan: UIPanGestureRecognizer)
on(gesture:callbacks:)
let pinch = UIPinchGestureRecognizer()
view.on(pinch, [
.began: pinchBegan,
.ended: pinchEnded
])
// func pinchBegan(pinch: UIPinchGestureRecognizer)
// func pinchEnded(pinch: UIPinchGestureRecognizer)
简写方法
Tactile 定义了6个简写方法:longPress
、pan
、pinch
、rotation
、swipe
和 tap
。
<shorthand>(callback:)
view.tap(tapped)
// func tapped(tap: UITapGestureRecognizer)
<shorthand>(state:callback:)
view.pinch(.began, pinchBegan)
// func pinchBegan(pinch: UIPinchGestureRecognizer)
<shorthand>(states:callback:)
view.pan([.began, .ended], panBeganOrEnded)
// func panBeganOrEnded(pan: UIPanGestureRecognizer)
<shorthand>(callbacks:)
view.longPress([
.began: longPressBegan,
.ended: longPressEnded
])
// func longPressBegan(longPress: UILongPressGestureRecognizer)
// func longPressEnded(longPress: UILongPressGestureRecognizer)
《off》方法
使用《off》方法来移除手势识别器。
off(gesture:)
let tap = UITapGestureRecognizer()
view.on(tap, tapped)
// ...
view.off(tap)
off(gestureType:)
view.off(UITapGestureRecognizer.self)
off()
view.off()
将手势识别器附加到多个视图
在Tactile中,您可以同时将相同的手势识别器附加到多个视图。
let tap = UITapGestureRecognizer()
tap.numberOfTapsRequired = 3
tap.numberOfTouchesRequired = 2
firstView.on(tap, firstViewTapped)
secondView.on(tap, secondViewTapped)
UIControl扩展
使用《on》方法为单个或多个控件事件附加事件处理函数。
on(event:callback:)
button.on(.touchUpInside, tapped)
// func tapped(button: UIButton)
on(events:callback:)
button.on([.touchUpInside, .touchUpOutside], tapped)
// func tapped(button: UIButton)
on(callbacks:)
button.on([
.touchUpInside: tapped,
.touchUpOutside: cancelledTap
])
// func tapped(button: UIButton)
// func cancelledTap(button: UIButton)
安装
Carthage
Carthage是一个去中心化的依赖管理器,它自动化了将框架添加到Cocoa应用程序的过程。
您可以使用以下命令通过Homebrew安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将Tactile集成到您的Xcode项目中,请在您的《Cartfile》中指定它。
github "delba/Tactile" >= 1.0
CocoaPods
CocoaPods是Cocoa项目的依赖管理器。
您可以使用以下命令安装它:
$ gem install cocoapods
要使用CocoaPods将Tactile集成到您的Xcode项目中,请在您的《Podfile》中指定它。
use_frameworks!
pod 'Tactile', '~> 1.0'
许可证
版权所有 (c) 2015-2019 Damien (http://delba.io)
在此特此授予任何获取此软件及其相关文档文件(以下称“软件”)副本的人以下权利:不附加任何费用使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人执行上述行为,前提是遵守以下条件
上述版权声明和本许可通知应包含在软件的任何副本或实质部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在没有任何事件、行为或疏忽的情况下,包括合同、侵权或其他行为,作者或版权持有者不对任何索赔、损害或其他责任负责,无论是因为软件或其使用或以任何其他方式与之相关。