学习UIScreenEdgePanGestureRecognizer手势
最近几天一直搞首页的框架,看了一些轮子,发现和我们的首页不一样。但是却发现UIScreenEdgePanGestureRecognizer
这个类,就研究一下。
禁止在TVOS上面使用这个手势
UIScreenEdgePanGestureRecognizer寻找在屏幕边缘附近开始平移(拖动)手势。 在一些情况下,系统使用屏幕边缘手势来启动视图控制器转换。 您可以使用此类为您自己的操作复制相同的手势行为。
看苹果官方文档的意识就是 我们平时使用UINavigationController可以从屏幕的左边移动返回POP到上一个界面的哪一个手势。
在创建屏幕边缘平移手势识别器之后,在将手势识别器附加到视图之前,向edge属性分配适当的值。 您可以使用此属性来指定手势可以从哪些边缘开始。 该手势识别器忽略第一触摸之外的任何触摸。
设置的属性
var edges: UIRectEdge { get set }
手势的可接受的起始边缘。
top: 从上面开始拖动
left: 从左边开始拖动
right: 从右边开始拖动
bottom:从下面开始拖动
all: 可以识别四个方向
您指定的边缘总是相对于应用程序的当前界面方向。 此行为确保手势始终出现在用户界面中的相同位置,而不考虑设备的当前方向。
我们新建一个例子试一下。
添加手势到试图上面
let screenEdgePanGesture = UIScreenEdgePanGestureRecognizer(target: self, action:#selector(ViewController.screenEdgePanGestureClick(gesture:)))
screenEdgePanGesture.edges = UIRectEdge.left
self.view.addGestureRecognizer(screenEdgePanGesture)
func screenEdgePanGestureClick(gesture:UIScreenEdgePanGestureRecognizer) {
print("screenEdgePanGestureClick")
}
这样我们从屏幕的边缘从左向右移动就会执行我们的事件了。我们可以根据我们的实际情况设置对应的方向。