關(guān)于Storyboard你也許不知道的小秘密

(一)前言

最近放縱的過了頭,筆記好久沒有寫了,然而LOL的段位并沒有并沒有因為多包宿而上升,真是個令人悲傷的故事。Xcode總有一些很少用到隱藏很深的小秘密,今天我們就來扒一扒Storyboard,讓哥幾個爽一爽。

(二)正文

1.Runtime Attribute

Runtime大法好呀!

我們都知道,Objc是一門動態(tài)語言,而這一切都要歸功于強大的Runtime庫。在日常的使用過程中,我們打交道最多的就是屬性面板了(Attributes inspector),改背景顏色啊,改Lable內(nèi)容啊等等。它非常的方便是沒有錯,但是它也有局限性。比如設(shè)置圓角,在屬性面板中并沒有這一選項。但是通過Runtime Attribute我們就可以完美的解決問題。當(dāng)然啦,屬性面板能夠做的事情,它自然也是不在話下了。

只需要輕輕一點右下角的加號,然后就像代碼中KVC的使用方法那樣,填上KeyPath,填上Value,一切搞定!

Attributes inspector
Storyboard的樣式.png
運行后的樣式

2.Global Tint

有的時候我們有這樣的需求,在Storyboard中所有的Tint Color都設(shè)置為其他的顏色,而不是默認的藍色。那么,我們?nèi)绻刻砑右粋€控件就在屬性面板中設(shè)置這種辦法實在是太Low了,好在Apple為我們考慮到了這一點,在Storyboard中的File inspector中的Global Tint為我們完美的解決了這一點。為該屬性設(shè)置了顏色以后,該Storyboard中的所有控件的Tint Color都變成了你所設(shè)置的顏色,比如UIButton的字體顏色、UIProgress進度條的顏色等等,是不是方便了很多呢?

Gobal Tint.png
6E9F51DE-7C84-48EE-9C30-AF13EB6BD41B.png

3.Outlet Collections

Outlet是iOS“拖線”開發(fā)中最基礎(chǔ)也是最常用的操作了,相信大家也已經(jīng)用的非常熟練了。Outlet Collections從名字上面我們就可以知道,它是Outlet的一種集合。舉個例子吧:有一個UI界面中有很多的UIButton,業(yè)務(wù)邏輯上他們屬于同一塊,然后你要在.m中獲取他們的引用,原來的方法是一個一個的給他們拖線,命名,然后再拖線...但是有了Collection以后世界就不一樣了。步驟如下:

點擊鼠標右鍵,出現(xiàn)的那個黑色HUD.png
拖線設(shè)置集合名稱.png

其他幾個的控件也是相同操作拖線到該Collections。我們可以看到,得到的引用是一個該控件類的數(shù)組集合。也就是說,不同類型的組件不能通過Collections來集合獲取。

屏幕快照 2016-01-01 下午2.30.21.png

OK啦,最后我們來測試一下獲取那幾個Button。

屏幕快照 2016-01-01 下午2.36.03.png

4.Storyboard Reference

在使用Storyboard開發(fā)中,最為人詬病的可能莫過于多人開發(fā)了,唐巧當(dāng)年在一篇博文中將其稱之為“災(zāi)難”(詳情可見他的個人博客)。機智的蘋果也看到了這個的問題,于是Storyboard Reference就出現(xiàn)了。它將一個原本龐大的Storyboard分發(fā)成多個子Storyboard,在父本中只能看到子體的引用。在多人開發(fā)的過程中,每個人修改自己的那個子體,那么就不會有那么多蛋疼的事情了。

選中你所要重構(gòu)的控制器,然后選擇Editor->Refactor to storyboard.png
設(shè)置新的Storyboard的名字.png
結(jié)果.png

當(dāng)然啦,每個人的使用習(xí)慣不一樣。你也可以選擇先新建一個Storyboard,然后再Main.Storyboard中添加一個Storyboard Reference控件,然后在屬性面板設(shè)置關(guān)聯(lián),就像下面那樣。

7ADABE74-D7B5-4979-9655-556E009A2968.png

5.對齊相關(guān)

用過PS的人應(yīng)該都知道輔助線的作業(yè),當(dāng)然萬能的Xcode也是提供了輔助線的功能的。單擊某個控件,按下shift+Command+-添加橫向輔助線,shift+Command+|添加縱向輔助線,添加的位置都是左右/上下居中的。如果你想要刪除輔助線,那么把它拖到最邊邊就可以啦!

屏幕快照 2016-01-01 下午3.35.42.png

有的時候我們需要快捷的知道某個控件上下左右的距離,那么我們只需要選擇相應(yīng)的控件,然后按下Option就可以啦,當(dāng)你鼠標移動到其他的控件的時候,也會智能的顯示出與該控件的位置距離參數(shù)。如下圖:

距離標注.gif

(三)結(jié)語

Storyboard剛出生的時候,它確實有這樣那樣的缺陷,但是經(jīng)過幾年的發(fā)展,蘋果不斷的改進,它已經(jīng)成為iOS快速開發(fā)不可或缺的重要工具。工程師的時間并不應(yīng)該浪費在那些無聊乏味的代碼上,在這一點上Storyboard一直未忘初心。

關(guān)于Storyboard的小技巧我相信還有很多,小伙伴們有什么新發(fā)現(xiàn)還記得多多分享哦!

最后的最后,祝大家2016年寫出越來越精致的代碼,我們Github上見!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • Storyboard是最先在iOS 5引入的一項振奮人心的特性,大幅縮減構(gòu)建App用戶界面所需的時間。 要介紹St...
    余一波_Bobby閱讀 62,387評論 11 76
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,159評論 4 61
  • 就是Iterator 遍歷用
    IAmWhoAmI閱讀 219評論 0 0
  • 世界上有兩種人最空虛,一種是好為人師的人,另一種就是好拜人師的人。 好為人師的人本身并不空虛,但大道理輸出的多了,...
    俞非白閱讀 316評論 0 2

友情鏈接更多精彩內(nèi)容