作者johnlinvc (阿翔)
看板MacDev
標題Re: [問題] 手勢操控之問題
時間Wed Mar 11 20:56:55 2015
※ 引述《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
→ 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