测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Roy Marmelstein 维护。
Peek 和 Pop 是 iPhone 6S 和 6S+ 推出的一个优秀的新 iOS 功能,它允许您通过 3D Touch 轻松预览内容。
遗憾的是,几乎有 60% 的 iOS 用户使用的是旧设备。
PeekPop 是一个 Swift 框架,它将向后兼容 Peek 和 Pop。
特性 | |
---|---|
为支持 3D Touch 的设备使用苹果漂亮的 peek 和 pop 交互。 | |
为旧设备提供自定义的压力传感触摸识别。 | |
在旧设备上忠实重现 peek 和 pop 动画。 | |
几乎与苹果的 API 完全相同。 | |
在所有 iOS8+ 设备上运行。 |
缺失的特性
在 Swift 文件的顶部导入 PeekPop。
import PeekPop
创建一个 PeekPop 对象,注册您的视图控制器以处理 peek 并指定源视图。您还需要声明您的视图控制器将遵循 PeekPopPreviewingDelegate 协议。
class MyViewController: UIViewController, PeekPopPreviewingDelegate {
var peekPop: PeekPop?
override func viewDidLoad() {
peekPop = PeekPop(viewController: self)
peekPop?.registerForPreviewingWithDelegate(self, sourceView: collectionView)
}
PeekPopPreviewingDelegate 要求实现两个简单函数。您需要用以下内容告诉它用于预览目的的视图控制器:
func previewingContext(_ previewingContext: PreviewingContext, viewControllerForLocation location: CGPoint) -> UIViewController?
…并且您需要告诉它在过渡结束时如何提交预览视图控制器
func previewingContext(_ previewingContext: PreviewingContext, commitViewController viewControllerToCommit: UIViewController)
在没有 3D Touch 的设备上,PeekPop 通过监控 UITouch 的 majorRadius 值的显著变化来识别屏幕上的压力。
它假设在您按下 iPhone 的时候,您手指的活动面积更大,这是大多数情况下的实际情况。