屏幕適配Autoresizing / Autolayout / Mansory / 自定義Frame實現

1. 什麼是適配:

     適應、兼容不一樣版本不一樣尺寸的移動智能設備程序員

     iPhone尺寸:3.五、4.0、4.七、5.5inch佈局

     iPad尺寸:7.九、9.7inch,橫豎屏適配  spa

 

  2. 點與像素

     非retaina屏:1個點 = 1個像素code

     retain屏:1個點 = 4個像素blog

 

3. 什麼是Autolayout

   1>  是一種「自動佈局」技術,專門用來佈局UI界面的開發

   2> 自iOS 6開始引入,因爲Xcode 4的不給力,當時並無獲得很大推廣微博

   3> 自iOS 7(Xcode 5)開始,Autolayout的開發效率獲得很大的提高
   4> 蘋果官方也推薦開發者儘可能使用Autolayout來佈局UI界面
   5> Autolayout能很輕鬆地解決屏幕適配的問題

4. Autoresizing

    1> Autoresizing瞭解效率

         Autoresizing:屏幕適配侷限性比較大(如不能佈局兄弟控件適配),沒Autolayout方便autolayout

         Autoresizing四周的四個線的做用:程序

     

     1.Autoresizing四周的四根線的做用:

        只要勾選上某一根, 那麼當前控件距離父控件的距離就是固定的, 當前是多少, 之後永遠都是多少

     

     2.Autoresizing中間兩條線的做用:

        只要勾選上水平方向的線, 那麼當前控件的寬度就會隨着父控件的寬度等比拉伸

        只要勾選上垂直方向的線, 那麼當前控件的高度就會隨着父控件的高度等比拉伸

     

     3.不管是將子控件固定在父控件的某一個位置

        仍是讓子控件隨着父控件的寬高的變化而變化

     

     都是父子關係, 因此Autoresizing只能約束父子控件之間的關係, 不能約束兄弟控件之間的關係(有侷限性相比較Autolayout)

  2> Autoresizing實例一:放四個View到storyboard四個角,適配不一樣屏幕尺寸。

           步驟:(1)

   (2)  設置四周View的指定位置便可。

                        

   (3) . 進入preview界面可進行預覽視圖界面,是否適配成功

                   

5. Autolayout屏幕適配

   1> Autoresizing,在Autolayout以前,有Autoresizing能夠做屏幕適配,但侷限性較大,有些任務根本沒法完成
   2> 相比之下,Autolayout的功能比Autoresizing強大不少
   3> Autolayout的2個核心概念
       3.1 參照
       3.2 約束

    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適配,採用代碼方式實現,休息一會再繼續,呵呵。

相關文章
相關標籤/搜索