PeekPan
结合了 3D Touch 和滑动手势,在预览的同时循环浏览一组视图。
当预览时,可以跟踪用户的触摸位置。
这仅仅提供了一种方式,通过这样的机制在一系列索引之间进行旅行。
在此库中使用的文件有:
PeekPanGestureRecognizer.swift
:
当显示预览时开始跟踪用户的触摸位置,并在触摸释放时结束。
PeekPanCoordinator.swift
:
将用户的触摸位置相关联到可调整的滑动区域内的一个索引范围。
PeekPanViewController.swift
:
用于在预览中显示不同 UIView
的可选方式的 UIViewController
。
用视图控制器查看器初始化 PeekPanCoordinator
,以添加一个手势识别器并设置滑动区域的边界。
设置协调器的数据源,并有一个 maximumIndex(for peekPanCoordinator: PeekPanCoordinator) -> Int
的返回值。同时设置协调器的代理及其方法以接收更新。
在 previewingContext(previewingContext:viewControllerForLocation:=)
中调用 setup()
或 setup(at:index)
,以在特定索引处设置协调器并从数据源检索数据。
在 previewingContext(previewingContext:commitViewController:=)
中调用 end(true)
,以更改协调器状态并重置其值。
要使用 PeekPanViewController
,按上述说明设置协调器,并将其代理设置为视图控制器。同时设置协调器的数据源为一个遵循其协议的类。
当索引发生变化时返回视图到 view(for peekPanViewController:atIndex:=) -> UIView
,当用户的触摸位置发生变化时返回视图到 view(for peekPanViewController:atPercentage:=) -> UIView
。`PeekPanViewControllerDelegate` 是 `PeekPanCoordinatorDelegate` 的一个子类,这样协调器的所有代理方法都可用到视图控制器的代理中。
PeekPan
使用了一些 Behance 上的图片,由以下作者创建,并受CC BY 4.0 许可证许可: