看板 MacDev 關於我們 聯絡資訊
※ 引述《yavis (yavis)》之銘言: : 小弟想問的是UISwipeGestureRecognizer的問題, 程式碼張貼於網址 : http://pastebin.com/3R530cVD : 我在viewdidload中建立了四個分別為上下左右的swipe手勢, : 四個方向的swipe卻佔用了15行之多 .. : 隨著添加的東西越來越多, : 程式碼變得越來越雜亂, : 想請教前輩手勢是否有較精簡的寫法呢, : 還煩請多多指教, 謝謝 你的function 實在是太長了... 一般來說單一function/method 控制在20 行內會比較好(也有人只能接受5 行內) http://pastebin.com/q9A1X9vm 可以看到下面關於swipe 的部分做完提取方法(Extract Method) 後只剩4+6 行 而且語意比原來的12 行清楚. 上面設定view 的部分也應該要如法炮製. edit: 不知道你有沒有用storyboard 或 xib 呢? 如果有的話,view init 的部分及Gesture 的部分都可以在interface builder 做. 沒有的話,view init 的部分應該要在loadView裡,而不是viewDidLoad 裡 ps. pastebin 可以開syntax highlight -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.168.0.73 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1426078619.A.8B2.html ※ 編輯: johnlinvc (218.168.0.73), 03/11/2015 21:02:23
johnlinvc: 用IB做gesture的方法 http://goo.gl/Jgoubj 03/11 21:05
yavis: 但是朋友推薦用程式碼控制較好,所以我沒有用storyboard 03/11 21:16
yavis: 感謝前輩提供的寫法, 讓我又多學了一招 03/11 21:17
fenir: 可以請教一下為什麼init部份要在loadView裡比較好呢? 03/12 01:38
yuanruo: 放loadView只是你在自定ViewController的view時 順道init 03/12 02:04
yuanruo: 了其他相關要加到view上的東西而已 時間點只差了一步 03/12 02:05
yuanruo: 你不重載loadview,他也會調用默認的loadview返回空的view 03/12 02:07
yuanruo: 至於memorywarning那些放viewdidload裡一樣也會被call到 03/12 02:08
nobody1: 真好, 又學到新東西了 03/12 14:18