一天一點xib:1簡單說明


引言

"一天一點愛戀,一夜一點思念~~",這是梁朝偉的一首歌,講解xib用這個標題,主要是個人比較喜歡梁朝偉演的電影,而且這首歌也算是經典,但最重要原因是很多程序員對xib并沒有"愛戀",這部分一共九篇文章,就是為了幫助廣大程序員對xib產生"愛戀"與"思念"。(文中的xib也包括storyboard,后面專門提高storyboard的地方統一簡寫為SB)

xib優缺點分析

以下是我總結的xib的優缺點,這個問題其實很主觀,沒有絕對,個人觀點,僅供參考。

缺點

1.有一定的學習成本

2.沒有代碼表達清晰

3.出錯不易發現,無法調試,尤其是“連線”出了問題

4.文件易沖突,且難解決,不利于團隊合作,尤其是在團隊中用SB

5.執行效率沒有代碼高

6.有時不利于封裝

優點

1.開發效率高

2.減少大量膠水代碼

3.通過xib可以快速、高效的學習控件

4.適配性明顯優于代碼(auto layout、size classes)

5.能做的事情比你想象中的要多

優缺點的一些個人看法

個人認為:

有學習成本的事情,要看值不值得去做,而xib絕對是值得去做的,因為xib對效率提升幫助相當巨大,是大勢所趨,因為無論是iOS開發還是Mac OS X開發,都沒有像Android那樣豐富的布局概念的引入,如果沒有xib,還停留在手寫UI的時代,可以說UI開發上Android完爆iOS,但如果用xib進行UI開發,則iOS的優勢更大。

2015 WWDC session 215——What's New in Storyboard中,蘋果的演講嘉賓現場統計用xib開發人數的占比已經很高了。我個人對學習新東西一直充滿熱情,雖然有時淺嘗輒止,但:

我心中那團火是不會熄滅滴(少林足球,周星馳)

做技術就是要不斷學習,要享受這個過程。

xib的確有時不如代碼表達清晰,尤其是“連線”很多的時候,但是如果你對xib很熟悉,看別人的xib遠比看別人的代碼效率要高很多。

xib有時候出錯是不容易被發現,尤其是在對xib掌握不是很好的情況下,多連一條線、少連一條線的錯誤很難看出來。

xib文件產生的沖突其實很容易被解決,一天一點xib:3先學會解決文件沖突中有詳細說明。

xib執行效率的確沒有代碼效率高,因為加載要多一步——把xib文件加載到內存中,當年我在iOS4上用iPad一代開發的時候,就有明顯感覺——一個頁面xib文件過多(當時用xib做表單提交數據,大概有60、70個控件)加載速度變慢(當時延時1、2s),但是就現在的硬件水平和一般的需求來說,這絕對不是瓶頸。

xib的確有時會使得對象難以封裝,但是如果用了xib你會發現有些封裝也不是必要的了,因為xib如此方便,拷貝一個xib出來改改就是了。其實如果你對xib掌握及其熟練、對封裝理解很好的話,其實xib有時會提高封裝性,舉個簡單的例子:比如現在有個基類叫BrandView,BrandView有個logo的屬性,這個屬性是UIView的實例,根據不同的品牌展現不同樣式的logo,BenzBrandView和BMWBrandView都繼承自BrandView,且都是用xib來管理UI的,那么我們就可以在基類中聲明

@property (nonatomic, strong) IBOutlet UILabel *brandLabel;

而在子類的xib文件中分別與基類的這個IBOutlet屬性“連線”,這樣既將屬性“抽”到了基類中,又不用基類寫創建的代碼,就是說基類可以利用子類的xib文件與自己做關聯從而避免了創建UI的代碼,同時又能實現很好的封裝。

優點方面:不需要繁瑣地、千篇一律地創建對象、布局對象,也不再使用代碼給屬性賦值。SB還會省去很多頁面跳轉之間的膠水代碼(segue),甚至不用寫代碼就能實現在各個頁面中切換,tableView的cell可以直接拖到tableView里,可以給tableView添加header、footer,可以添加手勢、設置代理、size classes使得適配變得更加容易、xib也使得國際化變得很容易、可以通過代碼給xib動態加入屬性...這些東西,有些根本不用寫代碼,有些只需寫極少量代碼就能實現。

總結

歡迎大家和我一起走進xib的世界,共同學習、共同成長。

歡迎大家和我交流溝通,若文章中有錯誤和紕漏,懇請指正,謝謝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,734評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,173評論 4 61
  • 引言 學到這里,xib給我帶來的幫助已經很大了,最大的莫過于UI控件的創建、屬性的賦值再也不用寫代碼,就UI開發來...
    二亮子閱讀 7,265評論 41 82
  • 在大海上,但心胸沒有大海寬廣,感覺又被欺騙了,如果太了解一個人,一個動作一個語氣都知道結果,我感覺到可悲,他不會自...
    蔣星星閱讀 302評論 0 0
  • 1.了解市面上主流的瀏覽器,記錄下來,并能說出他們之間的區別。 2.自行下載并安裝chrome瀏覽器。 3.了解并...
    sunshime閱讀 175評論 0 0