Re: [問題] 手勢操控之問題

作者: johnlinvc (阿翔)   2015-03-11 20:56:55
※ 引述《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
作者: johnlinvc (阿翔)   2015-03-11 21:05:00
用IB做gesture的方法 http://goo.gl/Jgoubj
作者: yavis (yavis)   2015-03-11 21:16:00
但是朋友推薦用程式碼控制較好,所以我沒有用storyboard感謝前輩提供的寫法, 讓我又多學了一招
作者: fenir (severus)   2015-03-12 01:38:00
可以請教一下為什麼init部份要在loadView裡比較好呢?
作者: yuanruo (罪を憎んで人を憎まず)   2015-03-12 02:04:00
放loadView只是你在自定ViewController的view時 順道init了其他相關要加到view上的東西而已 時間點只差了一步你不重載loadview,他也會調用默認的loadview返回空的view至於memorywarning那些放viewdidload裡一樣也會被call到
作者: nobody1 (無事家中坐)   2015-03-12 14:18:00
真好, 又學到新東西了

Links booklink

Contact Us: admin [ a t ] ucptt.com