AutoLayout動態(tài)隱藏控件的方法

使用AutoLayout有一段時(shí)間了,配合Xcode6新推出的size class做界面適配和自適應(yīng)布局非常好用。目前網(wǎng)上有關(guān)AutoLayout的教程大都淺嘗輒止,或者僅涉及到對設(shè)備的橫、豎屏的動態(tài)布局等比較簡單的應(yīng)用,而對AutoLayout做動態(tài)界面相關(guān)的內(nèi)容卻非常少,因此結(jié)合日常工作中的一些經(jīng)驗(yàn),來為大家做一些分享。

我們要做什么

相信很多開發(fā)者都需要解決這樣一系列問題:

我們需要根據(jù)用戶操作,或服務(wù)端返回的數(shù)據(jù),而動態(tài)顯示/隱藏一些控件,以達(dá)到靈活布局的效果。

我們需要根據(jù)需要調(diào)整某一控件的尺寸大小,位置信息,以輸出最適宜的界面布局。

面對類似高動態(tài)的界面實(shí)現(xiàn)時(shí),以往我們的方法是通過代碼來計(jì)算和判定控件的大小和位置,并結(jié)合控件的hidden,frame等屬性對其進(jìn)行設(shè)置,在實(shí)際使用中往往需要進(jìn)行比較復(fù)雜的計(jì)算,比較繁瑣。拋開代碼黨和xib黨的爭論,下面介紹一種使用AutoLayout實(shí)現(xiàn)動態(tài)界面的方法。

如示例圖所示,我們將要構(gòu)建一個由三個控件構(gòu)成的簡易應(yīng)用,通過底部的show和hide按鈕,控制第二個組件SecondObject的顯示和隱藏,并使得第三個控件根據(jù)情況自動布局。

操作步驟

一、新建一個iOS項(xiàng)目,在storyboard中拖入三個UILabel控件,并為其設(shè)置合適的AutoLayout約束:

二、 為需要操作的約束設(shè)置屬性并關(guān)聯(lián)到代碼

這里的兩個約束分別是: *SecondObjectTopSpace:SecondObject頂部到FirstObject的距離 *secondObjectHeight:SecondObject的高度

三、 編寫show和hide方法,為約束賦值,直接控制SecondObject的高度和距離'FirstObject'的頂部距離,從而達(dá)到完全隱藏/顯示SecondObject的目的。

- (IBAction)show:(id)sender{self.secondObjectHeight.constant =107;self.SecondObjectTopSpace.constant =60;}

- (IBAction)hide:(id)sender{self.secondObjectHeight.constant =0;self.SecondObjectTopSpace.constant =0;}

參考文章

參考代碼

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

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

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