(一)前言
最近放縱的過了頭,筆記好久沒有寫了雁乡,然而LOL的段位并沒有并沒有因為多包宿而上升糜俗,真是個令人悲傷的故事曲饱。Xcode總有一些很少用到隱藏很深的小秘密扩淀,今天我們就來扒一扒Storyboard,讓哥幾個爽一爽卵凑。
(二)正文
1.Runtime Attribute
Runtime大法好呀勺卢!
我們都知道象对,Objc是一門動態(tài)語言,而這一切都要歸功于強大的Runtime庫甫煞。在日常的使用過程中冠绢,我們打交道最多的就是屬性面板了(Attributes inspector)弟胀,改背景顏色啊喊式,改Lable內(nèi)容啊等等垃帅。它非常的方便是沒有錯剪勿,但是它也有局限性厕吉。比如設(shè)置圓角,在屬性面板中并沒有這一選項运悲。但是通過Runtime Attribute我們就可以完美的解決問題项钮。當然啦烁巫,屬性面板能夠做的事情,它自然也是不在話下了磁餐。
只需要輕輕一點右下角的加號阿弃,然后就像代碼中KVC的使用方法那樣渣淳,填上KeyPath,填上Value荠呐,一切搞定砂客!
2.Global Tint
有的時候我們有這樣的需求媚创,在Storyboard中所有的Tint Color都設(shè)置為其他的顏色钞钙,而不是默認的藍色。那么瘫怜,我們?nèi)绻刻砑右粋€控件就在屬性面板中設(shè)置這種辦法實在是太Low了本刽,好在Apple為我們考慮到了這一點子寓,在Storyboard中的File inspector中的Global Tint為我們完美的解決了這一點。為該屬性設(shè)置了顏色以后炸裆,該Storyboard中的所有控件的Tint Color都變成了你所設(shè)置的顏色鲜屏,比如UIButton的字體顏色洛史、UIProgress進度條的顏色等等,是不是方便了很多呢?
3.Outlet Collections
Outlet是iOS“拖線”開發(fā)中最基礎(chǔ)也是最常用的操作了,相信大家也已經(jīng)用的非常熟練了霎褐。Outlet Collections從名字上面我們就可以知道该镣,它是Outlet的一種集合。舉個例子吧:有一個UI界面中有很多的UIButton省艳,業(yè)務(wù)邏輯上他們屬于同一塊嫁审,然后你要在.m中獲取他們的引用律适,原來的方法是一個一個的給他們拖線遏插,命名胳嘲,然后再拖線...但是有了Collection以后世界就不一樣了扣草。步驟如下:
其他幾個的控件也是相同操作拖線到該Collections上岗。我們可以看到,得到的引用是一個該控件類的數(shù)組集合敬锐。也就是說台夺,不同類型的組件不能通過Collections來集合獲取痴脾。
OK啦赞赖,最后我們來測試一下獲取那幾個Button前域。
4.Storyboard Reference
在使用Storyboard開發(fā)中,最為人詬病的可能莫過于多人開發(fā)了移宅,唐巧當年在一篇博文中將其稱之為“災(zāi)難”(詳情可見他的個人博客)漏峰。機智的蘋果也看到了這個的問題届榄,于是Storyboard Reference就出現(xiàn)了痒蓬。它將一個原本龐大的Storyboard分發(fā)成多個子Storyboard滴劲,在父本中只能看到子體的引用班挖。在多人開發(fā)的過程中芯砸,每個人修改自己的那個子體假丧,那么就不會有那么多蛋疼的事情了。
當然啦,每個人的使用習慣不一樣谋梭。你也可以選擇先新建一個Storyboard瓮床,然后再Main.Storyboard中添加一個Storyboard Reference控件,然后在屬性面板設(shè)置關(guān)聯(lián)踢步,就像下面那樣。
5.對齊相關(guān)
用過PS的人應(yīng)該都知道輔助線的作業(yè)吼鱼,當然萬能的Xcode也是提供了輔助線的功能的菇肃。單擊某個控件取募,按下shift+Command+-添加橫向輔助線,shift+Command+|添加縱向輔助線斗忌,添加的位置都是左右/上下居中的。如果你想要刪除輔助線眶蕉,那么把它拖到最邊邊就可以啦造挽!
有的時候我們需要快捷的知道某個控件上下左右的距離饭入,那么我們只需要選擇相應(yīng)的控件,然后按下Option就可以啦肛真,當你鼠標移動到其他的控件的時候毁欣,也會智能的顯示出與該控件的位置距離參數(shù)。如下圖:
(三)結(jié)語
Storyboard剛出生的時候饭耳,它確實有這樣那樣的缺陷寞肖,但是經(jīng)過幾年的發(fā)展,蘋果不斷的改進衰腌,它已經(jīng)成為iOS快速開發(fā)不可或缺的重要工具新蟆。工程師的時間并不應(yīng)該浪費在那些無聊乏味的代碼上,在這一點上Storyboard一直未忘初心右蕊。
關(guān)于Storyboard的小技巧我相信還有很多琼稻,小伙伴們有什么新發(fā)現(xiàn)還記得多多分享哦!
最后的最后饶囚,祝大家2016年寫出越來越精致的代碼帕翻,我們Github上見!