最近完成了乙個windows store上面的手勢操作的頁面。在這裡總結了一下經驗和心得,希望能和大家一起分享和討論一下。
首先,要糾正乙個誤區,在windows store裡面,手勢和滑鼠的操作事件是不區分的。比如簡單的手指滑動事件,正常的寫法還是在pointerpressed, pointermoved和pointerreleased裡面去處理。大家可能認為,手勢的事件應該在,manipulationstarted和manipulationdelta等事件裡面去處理。但是如果我們在manipulation事件裡面處理了,pointer的事件依然會被觸發,而且我們也並不能通過這樣的方式區分是滑鼠,還是手勢觸發了這個事件。
windows store 列舉了一些常用的手勢。
tap乙個手指的點選
press and hold
乙個手指點選並長按
slide
乙個或多個手指向同一方向滑動
swipe
乙個或多個手指向同一方向短距離滑動
pinch
兩個以上手指聚攏
rotate
兩個以上手指旋轉
stretch
兩個以上手指分散
。pointer的層面就可以處理類似於slide或者swipe之類的手勢,但是這樣的手勢沒有對應的事件,我們只能在pointer裡面處理,pointer裡面可以提供多點觸控的支援。我們可以通過
可以幫我們區別滑鼠和手勢。
和這個例程
tips 1:
另外,要區別手勢的點選和滑動更是乙個頭痛的問題,因為無論是點選,還是滑動,都要激發pointerpressed, pointermoved和pointerreleased,這三個事件。我曾經很傻很天真的認為,手勢操作我只需要處理pointermoved事件就好了。但是這種情況有時會有pointer這個結構體為空的狀況,我也不清楚為什麼。後來的解決方案是,在pointerpressed事件裡面建乙個10個pointer的list,在pointermoved裡面對這個list新增poninter,如果小於10,退出,這個時候就是點選事件,超過10個就是滑動事件。
tip 2:
tip 3:
image 控制項有個bug 就是用**修改image.source 會失效,尤其是快速的切換這個source。之前我做過乙個用很多切換,形成乙個動畫的效果。這個實現的思路類似於雙緩衝,通過設定visibility來切換前後的image,把後面的image的source修改,然後呈現到前端,再把前端的image切換到後面換source,這樣的做法效果還不錯。但是如果沒有那麼多,我們直接在乙個grid裡面放所有的image 然後修改visibility好了。
GestureOverlayView 手勢識別2
gestureoverlayview 一種用於手勢輸入的透明復蓋層,用於識別各種手勢,可以覆蓋在控制項上,也可以包含其他控制項,有三個監聽介面 1.gestureoverlayview.ongesturelistener 手勢 2.gestureoverlayview.ongestureperfor...
手勢搜尋(Gesture Search)
手勢搜尋 服務可以使得使用者在手機上應用於搜尋應用程式 書籤 聯絡人 等。這種全新的搜尋方式,使得使用者在搜尋欄中從輸入第乙個字母開始後,就開始顯示相應的搜尋專案列引,並隨著輸入字母的增多,搜尋結果也隨之變得更加精 確。手勢搜尋 同時可以鑑別出潦草的手寫體字母,比如說,如果您以手寫輸入字母 a 但比...
長按(long Press)手勢
viewcontroller.m 長按手勢 created by rio.king on 13 11 2.import viewcontroller.h inte ce viewcontroller property nonatomic,strong uilongpressgesturerecogn...