2017-05-04 64 views
2

我正在Swift中開發iOS應用程序。我創建的另一個應用程序是我在Objective C中完成的一個應用程序,並且在2014年這個時候發佈。故事板似乎使UI的功能同時更容易和更復雜,因此我試圖從當前的最佳實踐出發的觀點發展。iOS 10用於定義UI的Swift和最佳實踐

對於多種屏幕尺寸,尺寸類別和約束似乎幾乎成爲此時的必要定時器。早在2014年,這種情況就不那麼嚴重了,並且以編程方式跟蹤UI佈局,因爲CGRect代碼通過程序化方式使UI佈局變得更簡單,更好地用於代碼重用VS創建全新的視圖控制器,以便將新的UI元素添加到大致相同視圖。用約束代碼做同樣的事情似乎不太吸引人,但如果我想要更多的代碼重用,也是必要的。

所以我想知道當前的做法是什麼,因爲我只是在考慮代碼重用。編程約束看起來不如故事板定義的優雅,但我不確定它們最終都是用於UI代碼的,因爲它們在程序上動態更新UI似乎有問題。

在這一點上,最好的策略是將所有內容都包含在佈局中,保留超級視圖並保持大部分故事板爲中心,或者對於爲這些佈局執行swift編程代碼仍然有意義,因爲我必須爲iPad和iPhone指定特定無論如何改變?關於這個話題,將大量不同的用戶界面分成多個故事板(例如2個不同的iPad和iPhone故事板,因爲這是一個默認設置)還是有意義的?

在此先感謝您的答案。設備特定的東西似乎並不總是代碼重用,但我只是想重用相對簡單,我猜。否則,我只是創建比我嚴格需要的更快的類。

回答

2

這本質上是基於意見的。從Interface Builder到只有StoryBoards的所有東西都可能用於生產應用程序,並且您可以使任何工作都可以實現。

我個人的傾向是將Storyboard用於除TableView/CollectionView單元以外的其他任何東西。我發現它從我的類中刪除了幾乎所有的接口樣板代碼,並使它成爲我只需要處理ViewController之間的接口。以下是指引我一般儘量並按照:(再次...意見)

  • 以有用的方式組織使用多個故事板:

大故事板變得難以維護和性能,同時編輯遭受顯着。我們可以選擇使用StoryboardReferences,所以不妨使用它們。

  • The Scenes和ViewControllers越多越好。 (合理範圍內)

這使得事情更易於維護和重用。例如。一個頭可以在多個場景中使用。使用containerVCs並處理各地的segues可能有點煩人,但我很少後悔將某些東西分離到它自己的ViewController中。

  • 不要爲不同的大小使用單獨的接口文件。

這是更多的代碼來維護,如果你想支持調整iPad上(或任何未來的設備),將迫使你換ViewControllers進出。更何況前進很明顯蘋果假設你使用的大小類,而不是交換ViewControllers和顯然是在未來的蘋果平臺開發的發展方向

  • 當你需要的動畫,儘量縮小它改變一個約束。常量

這極大地簡化了你的代碼,並且通常避免了在故事板以外的任何地方處理大小類。對於複雜的動畫並不總是可能的,但如果你願意亂搞,你可以做出驚人的數量。它可以將切換操作縮小爲2行代碼,這非常好。使用StackViews也可以幫助你很多。

重點關注的另一件事是避免儘可能多的IB的字符串類型的性質。在Swift中這很容易,並且有一些體面的解決方案使用字符串支持的枚舉和擴展,但具體可能超出了這個問題的範圍。