2014-09-01 21 views
0

我是iOS編程的新手,顯然是Swift的新手(因爲它是新的),而且在過去的35年中,編程的整體效果最好。然而,過去20年來,我一直擔任包括程序員的多學科團隊的經理,因此我理解了很多軟件設計的基本概念。我爲上下文提供這些信息。iOS Swift:UITapGestureRecognizer和Storyboard

我正在爲一個類的數據庫應用程序工作,並添加了很多我自己選擇的功能來增強我自己的學習體驗。我昨天想讓用戶點擊一個UIImageView爲數據庫條目選擇一張新圖片。我在UIImageView中添加了一個Tap Gesture Recognizer,並將IBAction連接到相應的視圖控制器,然後向IBAction添加了一個println()以測試它是否被識別。在UIImageView的水龍頭沒有產生的println()和我很沮喪,所以我看了看周圍的管的一些提示,發現一些示例代碼編程識別龍頭:

let recognizer = UITapGestureRecognizer(target: self, action: Selector("didTap:")) 
recognizer.delegate = self 
view.addGestureRecognizer(recognizer) 

這工作一種享受,像他們說的那樣。然而,我很沮喪,因爲我看到很多關於如果我使用故事板時代碼是不必要的想法。在對測試項目進行了一些實驗之後,我最終發現UIImageView必須在屬性檢查器中具有「用戶交互已啓用」(不是默認設置)才能識別用戶交互,這在事後纔是有意義的。

我的問題(最後!)是兩種方法之間的差異是否是風格的,還是有理由選擇以編程方式通過故事板實現它。用於演出或授權或其他。例如,我可以看到,我可以將識別碼嵌入if語句中。還有其他原因嗎?

這個問題對於這種格式太理論嗎?

回答

1

恕我直言,我總是使用故事板,除非,直到我遇到了必須在代碼中完成的事情。如果我可以在大型互連塊中看到它,理解應用程序的整體形狀在概念上更容易。不應該有任何明顯的性能差異。

關於您的特定示例,無論何時我必須可以點擊圖像,我只需將圖像放入UIButton,然後在控制器中將按鈕掛到IBAction。這消除了添加自定義手勢識別器並記住使圖像可點擊的需要。

+0

謝謝您的回覆! – 2014-09-01 21:10:03

+0

對這個話題缺乏活動讓我相信答案是「個人風格」。我會標記它的答案。謝謝! – 2014-09-03 20:05:14