2013-03-28 143 views
0

有沒有辦法給UIGestureRecognizer的形狀(一系列共同ORDS的),它可以當用戶繪製用手指形狀來觸發一個動作?我在考慮字母形狀,但它可能是任何東西。如何識別字母與UIGestureRecognizer

編輯:

我發現這個https://github.com/chrismiles/CMUnistrokeGestureRecognizer這可能會做我想做的。

+0

你應該創建一個'UIGestureRecognizer'的實例,並且你可以在那裏定義自定義的手勢,並且使用它你將能夠直接識別任何你可以定義的東西。 – holex 2013-03-28 10:02:41

+0

嗨@cannyboy你可以運行你在gihub中獲得的代碼嗎? – 2013-03-29 05:01:15

回答

2

不幸的是實現自定義手勢識別器並不像提供UIGestureRecognizer與形狀或一系列點的那樣簡單。你必須繼承UIGestureRecognizer和寫入通過touchesBegan:withEvent:touchesMoved:withEvent:等跟蹤用戶的交互然後,根據線路長度和角度用戶繪製手勢的等代碼,你確定它是否成功匹配你期待什麼,火UIGestureRecognizer回調。

這會導致固有的複雜情況,因爲用手指弄亂手勢時用戶不太精確。你將不得不設計你的姿態,以容忍什麼被承認;太嚴格,它將是無用的,過於通用,它會報告太多的誤報。

我懷疑如果你試圖識別大量的手勢,比如字母表的字母,而不是實現26個不同的手勢識別器,你最好寫一個記錄用戶輸入一次的通用手勢並檢查它是否與您在某處存儲的手勢定義的選擇相匹配。然後實現一個自定義回調,告訴處理程序匹配哪個手勢。

從A按非常著名的「Beginning iOS Development: Exploring the iOS SDK」系列奉獻一個章節的一小部分,以實現自定義手勢識別器。隨附的源代碼可以從官方Apress網站here(底部的源代碼/下載標籤)下載。
請參閱第17章中的第627-632頁:「點擊,觸摸和手勢」。

Apple的Event Handling Guide for iOSGesture Recognizers章節包含「創建自定義手勢識別器」部分,其中還包含相關信息和示例。

+0

感謝您的詳細解答。我用我找到的解決方案編輯了我的問題。 – cannyboy 2013-03-28 22:12:31

+0

@cannyboy沒問題,我很抱歉,我無法建議任何高質量的第三方庫來實現你想要的東西(比如你找到的項目)。我從來不需要實現一些簡單的自定義手勢識別器。我希望你的解決方案能爲你解決,謝謝你發佈它。 – 2013-03-28 22:18:21

+0

請注意,您發佈到本書的鏈接是針對盜版電子書的,因此我已將其刪除。 – 2013-07-05 17:46:53

相關問題