iOS 螢幕適配之sizeclass

來源:互聯網
上載者:User

標籤:

1. 螢幕適配的各種技術

  1> 3gs\4\4s時代:沒有螢幕適配一說,尺寸只有一個,直接用代碼計算frame就行了

  2> iPad出現:為應對橫豎屏,蘋果推出autoresizing,它的作用是讓子控制項能跟隨父控制項做展開.如,autoresizing可以讓紅色的子控制項的寬度始終鋪滿螢幕

  3> 5\5c\5s的出現:autoresizng不夠用了,因為它只能解決父子關係控制項的排布問題,解決不了兄弟關係控制項之間的位置關係,所以autolayout出現了.

  autolayout,可以在任意2個控制項之間建立位置關係

  4> 6\6plus的出現:autolayout又不夠用了,sizeclass可以實現autolayout做不到需求

    autolayout不夠用的原因:

      a>Universal的項目,有2套storyboard,一套是給iphone用,另一套給ipad用的,這就意味著需要對每一套storyboard,設定約束

      b>非Universal項目,比如iphone項目,autolayout無法實現 不同尺寸的iphone使用不同的布局方案

 

2.sizeclass

  1>sizeclass 僅僅是對螢幕進行了分類,真正排布UI元素的還是autolayout

  2>不再有橫豎屏的概念,只有螢幕尺寸的概念

  3>不再有具體尺寸的概念,只有抽象尺寸的概念

2.1 抽象尺寸:把長和寬各分為3種:分別是Compact(緊湊的),Any,Regular(寬鬆)

  1>這樣一划分,螢幕尺寸就9種排列組合:

 

 

  

  2>在不同螢幕尺寸類型下,可以為控制項添加不同的約束條件

 

  3>可以讓同一個imageView,在不同的螢幕尺寸洗,顯示不同的圖片

 

  4>還可以讓label在不同的螢幕尺寸下,顯示不同的font

 

 

  5>符號解釋:

    - compact

    * any

    + regular

  6>注意尺寸的繼承性: any Width | any Height 是Base Values For all layouts,也就是說在any Width | any Height尺寸類型下,給控制項添加的約束會影響到其他尺寸類型.例如下面這兩約束會警示告.

    在any Width | any Height 給button添加了和左邊界固定距離的約束,

    在compact Width | compact Height 給button添加了和右邊界固定距離的約束,

 

 

iOS 螢幕適配之sizeclass

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.