對于屏幕適配的結果,可點擊運行軟件右上方的雙環,下選那個書頁形狀標記中的PreView可以預覽在不同尺寸中的位置。
- Autoresizing技術特點:(必須關閉AutoLayout)
- 橫豎屏適配相對簡單
- 子控件跟父控件的行為自動發生相應的變化(只解決父子控件的相對問題)兄弟控件的相對問題不能解決,要解決可使用AutoLayout技術
屏幕快照 2016-06-17 下午10.55.40.png
子控件在父控件的位置固定可通過把對應的Autoresizing中的外圍虛線點實即可。若子控件在某方向上的大小對應屏的比例進行自動伸縮,則將對應的Autoresizing中的圖內部虛線點實即可。
UIViewAutoresizingFlexibTopMargin = 1 //底部固定
UIViewAutoresizingFlexibButtonMargin = 1 //頂部固定
UIViewAutoresizingFlexibRightMargin = 1 //左部固定
UIViewAutoresizingFlexibLeftMargin = 1 //右部固定
UIViewAutoresizingFlexibWidthMargin = 1 //寬度隨父控件自行伸縮
UIViewAutoresizingFlexibHeightMargin //高度隨父控件自行伸縮
AutoLayout功能比Autoresizing強大
根據具體情況需要,若在約束功能里邊的constrain to margins前面打鉤,則顯示的最終結果是自定義的值加上系統為Plus默認邊距留出的16.
如果拖的控件中有報紅,是約束不完整或約束沖突的問題。
- 對于兄弟控件的相對問題:
- 若同高同寬,兩控件要全選,才能進行設置。
- 可通過拖線去設置,以一個為參照,另一個拖線到這個控件進行改值即可
通過AutoLayout對UILabel進行設置,對上,左和寬進行設置,高度會因為內部的內容自行伸縮。若寬度也因為文字的多少而改變,且最長不超過一個值,則在設置好寬度后,在右邊欄中找到對應的設置線進行Edit。【雙擊后把First Item 選成Less Than Or Equal】
在修改了約束之后,只要執行下邊的代碼,就能做出動畫效果。
[UIView animateWithDuration:1.0 animations:^{
[添加了約束的view layoutIfNeeded];
}];