先說(shuō)個(gè)人看法:具體情況具體分析,該用什么用什么。脫離具體使用場(chǎng)景的討論都是耍流氓。AutoLayout可以解決你很多約束需求,你有什么需求是AutoLayout實(shí)現(xiàn)不了的可以通過(guò)代碼調(diào)整,不過(guò)情況很少的。。。舉個(gè)例子看看?12-05更新回應(yīng)一下@NSFish的回答。多個(gè)storyboard和xib里的字體、控件背景如何統(tǒng)一控制。比如標(biāo)題都是14,顏色為0X999999這樣,用代碼設(shè)置一個(gè)globalconfig之類(lèi)的地方讀取即可,用IB不知道要怎么做。storyboard中的viewController的重用問(wèn)題。這種統(tǒng)一控件不應(yīng)該用基類(lèi)來(lái)做嗎?比如整個(gè)應(yīng)用所有按鈕字體都是14號(hào)字,如果有1000個(gè)按鈕你就多了1000行設(shè)置格式的代碼?這種無(wú)意義代碼不應(yīng)該盡量減少嗎?如果我又要加上背景顏色,那你豈不是要找到這1000個(gè)按鈕然后挨個(gè)加上背景顏色?累不累。。。XIB是可以設(shè)置基類(lèi)的(custumclass),而且利用runtimeattr標(biāo)簽可以設(shè)置一些運(yùn)行時(shí)屬性,比如圓角,投影之類(lèi)。我覺(jué)得這種代碼屬于無(wú)意義重復(fù)代碼,如果能減少是最好的。storyboard中似乎是無(wú)法直接制作view的,而必須要放入viewController中,以體現(xiàn)storyboard“scene”的意義,這不難理解。但在storyboard里做了一個(gè)容器viewControllerA(比如說(shuō),一個(gè)類(lèi)網(wǎng)易新聞的橫向標(biāo)簽條和一個(gè)scrollView的組合),想要作為基類(lèi)來(lái)使用,同一個(gè)storyboard里使用A的派生類(lèi)B,B中所有的控件都沒(méi)有初始化,似乎是storyboard并不認(rèn)可這樣使用,讓人有些困擾。storyboard是故事版,你見(jiàn)過(guò)在鏈表里面插入一個(gè)字符串的嗎,顯然應(yīng)該加個(gè)節(jié)點(diǎn)啊。。。這種情況如果想用xib可以新建xib文件并建立關(guān)聯(lián)即可。至于你說(shuō)的初始化的問(wèn)題,沒(méi)看懂你想說(shuō)什么,建議先了解一下view的生命周期和xib的加載流程。后面的我不想說(shuō)太多了,時(shí)間有限,如果有了問(wèn)題建議先google一下,比如:Usingxibobjectinsideanotherxib我覺(jué)得能解決你的很多困惑。還是那句話(huà),具體問(wèn)題具體分析。很多場(chǎng)景確實(shí)不適合使用Storyboard(比如我要寫(xiě)個(gè)基類(lèi)繼承UIButton然后有一些自己的默認(rèn)屬性比如字體顏色什么的),但是絕大部分場(chǎng)景是推薦使用XIB的??茨阍趺从昧?。當(dāng)然Masonry也是個(gè)不錯(cuò)的選擇。