CCGestureLock
CCGestureLock(Swift)是用 Swift 编写的 iOS 自定义手势/图案锁。
示例截图
- Android / 钢铁侠 / 美国队长
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
要求
N/A
安装
CCGestureLock 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "CCGestureLock"
使用方法
添加手势锁
- 将 CCGestureLock 实例添加到您的视图(或在 Interface Builder 中,将 UIView 的自定义类别设置为 CCGestureLock)。
逻辑连接
- 注册事件监听器
gestureLock.addTarget(
self,
action: #selector(gestureComplete),
for: .gestureComplete
)
- 处理事件
func gestureComplete(gestureLock: CCGestureLock) {
let lockSequence = gestureLock.lockSequence
}
- 管理状态
// Set lock state to GestureLockState.error will highlight (user) selection sequence according appearance specified for "incorrect password" state
gestureLock.gestureLockState = .error
// Deselect selection sequence, enter reset state
gestureLock.gestureLockState = .normal
自定义
- 自定义锁大小
gestureLock.lockSize = (numHorizontalSensors: 3, numVerticalSensors: 3)
- 自定义正常/选中/错误(错误密码)状态下的传感器外观
// Sensor point customisation (normal)
gestureLock.setSensorAppearance(
type: .inner,
radius: 5,
width: 1,
color: .white,
forState: .normal
)
gestureLock.setSensorAppearance(
type: .outer,
color: .clear,
forState: .normal
)
// Sensor point customisation (selected)
gestureLock.setSensorAppearance(
type: .inner,
radius: 3,
width: 5,
color: .white,
forState: .selected
)
gestureLock.setSensorAppearance(
type: .outer,
radius: 30,
width: 5,
color: .green,
forState: .selected
)
// Sensor point customisation (wrong password)
gestureLock.setSensorAppearance(
type: .inner,
radius: 3,
width: 5,
color: .red,
forState: .error
)
gestureLock.setSensorAppearance(
type: .outer,
radius: 30,
width: 5,
color: .red,
forState: .error
)
- 自定义正常/选中/错误(错误密码)状态下的线条外观
// Line connecting sensor points (normal/selected)
[CCGestureLock.GestureLockState.normal, CCGestureLock.GestureLockState.selected].forEach { (state) in
gestureLock.setLineAppearance(
width: 5.5,
color: UIColor.white.withAlphaComponent(0.5),
forState: state
)
}
// Line connection sensor points (wrong password)
gestureLock.setLineAppearance(
width: 5.5,
color: UIColor.red.withAlphaComponent(0.5),
forState: .error
)
作者
Hsuan-Chih Chuang, [email protected]
许可协议
CCGestureLock 在MIT许可下可用。有关更多信息,请参阅LICENSE文件。