學習UISCREENEDGEPANGESTURERECOGNIZER手勢

學習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")
}

這樣我們從屏幕的邊緣從左向右移動就會執行我們的事件了。我們可以根據我們的實際情況設置對應的方向。

Demo下載

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 手勢識別器(Gesture Recognizer)用于識別觸摸序列并觸發響應事件。當手勢識別器識別到一個手勢或手勢...
    pro648閱讀 6,156評論 0 13
  • 手勢識別器是附加到視圖的對象,將低級別事件處理代碼轉換為更高級別的操作,它允許視圖以控件執行的方式響應操作。 手勢...
    坤坤同學閱讀 4,134評論 0 9
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,251評論 4 61
  • 概述 手勢識別器是處理視圖中的觸摸或者按壓事件最簡單的方法,我們可以在任意視圖上附加一個或多個手勢識別器。手勢識別...
    漸z閱讀 3,115評論 0 2
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評論 25 708