學習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")
}
這樣我們從屏幕的邊緣從左向右移動就會執行我們的事件了。我們可以根據我們的實際情況設置對應的方向。