AutoLayout 按比例布局
AutoLayout
一般設(shè)置使用的是絕對值:view width
和height
的固定值同规,subview
與父view
或相鄰view
的距離固定值晓淀。
</div>
下面介紹下按比例使用AutoLayout布局界面。
****想要實現(xiàn)這樣一個布局****
- 新建subview,其高和寬都為屏幕view大小的
1/3
. -
subview的上距和左距都為view的
1/4
.
實現(xiàn)按比例布局界面的關(guān)系式為:
FirstItem.Attribute1 = (SecondItem.Attribute2 * Multiplier) + Constant
****1. ****在****view****中在刺,新建一個寬高都為****100****的****subview****贷岸。并居中設(shè)置。
設(shè)定寬高:
</div>
設(shè)定對齊方式:
</div>
****2. ****從屬性欄中可以看到設(shè)置的Constraints
.
</div>
****3. ****點擊****Align Center X to:Subperview
,****進(jìn)入編輯頁面嵌削。
</div>
從窗口中毛好,可以看到布局關(guān)系式對應(yīng)的幾個參數(shù)。當(dāng)前subview
和subview
都是居中對齊的苛秕,所以Constant
值為0
肌访,也就說Superview.Center.X=subView.Center.X
因為我們要設(shè)置的是subview
的布局,所以為了方便期間艇劫,把first item
設(shè)置為subview
吼驶,使用Reverse First And Second Item
按鈕,交換subview
與superview
的位置店煞。
</div>
點擊first item和second item的下拉框蟹演,可以看到x軸上相關(guān)的其他值。
****4. ****下面設(shè)置****subview****距****view****左邊距****1/4.****介紹下兩種關(guān)系式顷蟀。
-
subview的左邊緣位于superview右邊緣的1/4處酒请。即關(guān)系式為:
subView.Leading=superView.Trailing*1/4+0
-
有時候按照邊緣來設(shè)置并不好用,可以使用兩者的中間線設(shè)置鸣个。比如subview的中間線位于superview中間線的1/2羞反。即關(guān)系式為:
subView.Center X=superView.Center X*1/2+0
(當(dāng)然這兩個關(guān)系式的結(jié)果并不是一樣的。)
****5. ****這里使用第一個方式囤萤,設(shè)置為
</div>
****6. ****同理昼窗,設(shè)置下Y
線的值
</div>
****7. ****接下來設(shè)置subview
寬高和superview
的比例關(guān)系。
先把subview設(shè)置為superview等寬高
</div>
****8. ****點擊新增的Constraints
阁将,進(jìn)入編輯界面
</div>
****9. ****改變比例關(guān)系膏秫。關(guān)系式為:
subView.Width=superView.Width*0.33+0
</div>
****10. ****同樣修改****Height****的比例關(guān)系
subView.Height=superView.Height*0.33+0
****11. ****最后刪除之前設(shè)置****subview****的寬高固定值。并****update frame****做盅。
</div>
****12. ****最終的效果圖為:
</div>