為什麼iOS開發不需要Storyboard

2021-06-28 02:37:29 字數 1217 閱讀 1708

發表於 15小時前|

martin normark's blog|

martin h. normark

移動開發

ios開發經驗

storyboard

xcode開源庫

摘要:對於大多數開發者而言,storyboard為快速開發所帶來直接價值是不可抹滅的。但對一些資深開發者及**潔癖者來說,卻會使其**及配置相對臃腫或引來不必要的麻煩,那麼,ios開發究竟需不需要storyboard?

當我在xcode中建立乙個新的ios專案,無論它是iphone/ipad裝置獨佔還是universal的,我做的第一件事總是刪除storyboard。並且,和你們想象的不同,我並不是想用xib來代替storyboard,我完全不使用inte***ce builder。

treehouse論壇對此有很棒的討論,並且我聽到的說法總是類似:inte***ce builder會鼓勵做出壞的實踐。

因為我之前有在window平台使用visual studio開發的經驗,我可以很自信的說,inte***ce builder非常不好,至少與vs比較是這樣。visual studio之所以更優秀,其原因之一在於標記式語言(xaml),它能被設計師使用,就像html相對於web一樣。

不管怎麼說,讓我們回到ios上來。

使用inte***ce builder最壞的地方是,它讓分解檢視塊以及從檢視控制器(view controller)使用檢視的工作大大增加了。它的後果是導致出現體積臃腫的檢視控制器,而這是應該避免的,並且它們編輯起來簡直是乙個噩夢。

即使你做了這些多出來的工作,並且提取出部分ui到可重用的檢視裡,你在inte***ce builder裡看到的將是乙個個白色塊,裡面包裹著可重用檢視,但你不能直觀的看到它們。

另乙個問題是outlets,在合併的時候它們可能偶然的斷開連線,或者如果你在重用檢視時忘記連線它們,你的應用會崩潰。

有些人可能會爭論說,當面臨螢幕適配問題時,使用auto layout和ib結合是一種好的解決辦法。這一點我仍然不同意——首先我認為在ib中管理布局約束是噩夢,使用拖拽很難將檢視調整到精確的位置,元素會突然對齊到鄰近的檢視,並且當你新增多個box時,它們的層級順序會打亂並且改變其它box。

updateconstraints.swift

[cpp]view plain

copy

override func updateconstraints()   

python為什麼不需要swap a,b

關鍵字 python swap 致 謝 這是一篇譯稿,原作者是一位nasa的程式設計師,非常感謝他在python社群及時 詳細的為我解答了問題,並在講解中解說了一些python的相關知 識,還寬容的對待我蹩腳的英語。感謝他同意我將他的來信介紹給大家。這是一位謙和有禮又博學多才的朋友。他幫我理解pyt...

為什麼 Linux 不需要碎片整理

想要知道為什麼在正常使用中,linux檔案系統不需要進行碎片整理,而windows要。你需要了解為什麼會生成碎片,而linux和windows這兩個檔案系統,它們分別是如何工作的。什麼是碎片 許多windows使用者,即使沒有太多經驗,我相信他們也會定期進行碎片整理,來加速其電腦。為什麼要這麼做,許...

為什麼Linux不需要碎片整理?

出處 極客範 如果你是乙個linux使用者,你可能會聽說linux的檔案系統不需要碎片整理。你也可能會注意到linux的發行版本也都沒有磁碟碎片整理的功能。這是為什麼呢?linux系統中沒有 磁碟碎片整理 功能 要理解為什麼linux的檔案系統不會想windows的檔案系統一樣產生碎片,你首先要明白...