適應、兼容不一樣版本不一樣尺寸的移動智能設備程序員
iPhone尺寸:3.五、4.0、4.七、5.5inch佈局
iPad尺寸:7.九、9.7inch,橫豎屏適配 spa
非retaina屏:1個點 = 1個像素code
retain屏:1個點 = 4個像素blog
1> 是一種「自動佈局」技術,專門用來佈局UI界面的開發
2> 自iOS 6開始引入,因爲Xcode 4的不給力,當時並無獲得很大推廣微博
1> Autoresizing瞭解效率
Autoresizing:屏幕適配侷限性比較大(如不能佈局兄弟控件適配),沒Autolayout方便autolayout
Autoresizing四周的四個線的做用:程序
1.Autoresizing四周的四根線的做用:
只要勾選上某一根, 那麼當前控件距離父控件的距離就是固定的, 當前是多少, 之後永遠都是多少
2.Autoresizing中間兩條線的做用:
只要勾選上水平方向的線, 那麼當前控件的寬度就會隨着父控件的寬度等比拉伸
只要勾選上垂直方向的線, 那麼當前控件的高度就會隨着父控件的高度等比拉伸
3.不管是將子控件固定在父控件的某一個位置
仍是讓子控件隨着父控件的寬高的變化而變化
都是父子關係, 因此Autoresizing只能約束父子控件之間的關係, 不能約束兄弟控件之間的關係(有侷限性相比較Autolayout)
2> Autoresizing實例一:放四個View到storyboard四個角,適配不一樣屏幕尺寸。
步驟:(1)
(2) 設置四周View的指定位置便可。
(3) . 進入preview界面可進行預覽視圖界面,是否適配成功
1.約束
每在Storyboard中添加一個設置(autolayout的設置), 就表明添加一個約束
2.錯誤(紅色箭頭)
若是看到Storyboard中有紅色的箭頭, 表明約束有錯誤
注意: 約束有錯誤, 不表明運行會錯誤, 約束有錯誤一樣能夠運行
注意: 紅色箭頭是程序員必須解決的
3.爲何會有約束錯誤?
3.1缺乏約束
3.2約束衝突
3.1缺乏約束
>autolayout的本質和frame差很少
>若是經過frame來設置一個控件, 必須設置這個控件的x/y/w/h, 控件才能按照咱們的需求顯示
>若是是經過autolayout來設置一個控件, 也必須設置這個控件的x/y/w/h, 控件才能按照咱們的需求顯示
>也就是說, 若是說x/y/w/h只要有一個沒有設置都會報錯, 就是缺乏約束
3.2約束衝突
>約束能夠重複添加
>例如先約束寬度等於100, 又添加一個約束, 約束寬度等200, 那麼就會報錯
紅色:
距離頂部有20 == 至關於設置了Y
距離左邊有20 == 至關於設置了x
設置寬度等於100
設置高度等於100
4.警告
若是看到Storyboard中有黃色的箭頭, 就是警告
> 表明着當前控件預覽的位置或者尺寸和咱們約束的位置尺寸不同
注意:黃金警告並不會影響咱們運行
注意:黃色箭頭, 程序員能夠忽略
第一種方式:經過storyboard右下角圖案處,點擊可進行處理屏幕適配:
1.對齊方法可設置(storyboard右下角可見),
二、設置相對位置、寬高等
三、設置控件與全部控件的約束操做(刪除與更新等操做於約束)
第二種方式:按住「control」鍵,能夠在控件本身,或者直接拖拽到其餘控件上,會彈出對話框,可選擇添加約束,來適配
注意:往左邊相對左邊,同理向右邊相對右邊設置約束,向下相對底部,向上相對頂部
將彈出右框:
小案例:以下:
1.實現紅色View寬度 = 藍色寬度一半:
2.微博小案例,正文不等高,父控件隨之動態變化
設置約束還有不少方式,非代碼方式就處處吧,你們本身摸索就ok了。
下一將,咱們接着講解Autolayout適配,採用代碼方式實現,休息一會再繼續,呵呵。