IOS開發指南第四章 IOS8多解析度螢幕適配 學習

來源:互聯網
上載者:User

標籤:

1 擷取IOS裝置螢幕資訊

    CGSize iOSDeviceScreenSize  = [UIScreen mainScreen].bounds.size;    NSString *s = [NSString stringWithFormat:@"%.0f x %.0f", iOSDeviceScreenSize.width, iOSDeviceScreenSize.height];

 擷取裝置資訊判斷是否是ipone-判斷橫屏還是豎屏-判斷裝置型號

 屬性userInterfaceIdiom是枚舉類型

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {                if (iOSDeviceScreenSize.height > iOSDeviceScreenSize.width) {//豎屏情況            if (iOSDeviceScreenSize.height == 568) {//iPhone 5/5s/5c(iPod touch 5)裝置                NSLog(@"iPhone 5/5s/5c(iPod touch 5)裝置");            } else if (iOSDeviceScreenSize.height == 667) {//iPhone 6                NSLog(@"iPhone 6 裝置");            } else if (iOSDeviceScreenSize.height == 736) {//iPhone 6 plus                NSLog(@"iPhone 6 plus 裝置");            } else {//iPhone4s等其它裝置                NSLog(@"iPhone4s等其它裝置");            }        }        if (iOSDeviceScreenSize.width > iOSDeviceScreenSize.height) {//橫屏情況            if (iOSDeviceScreenSize.width == 568) {//iPhone 5/5s/5c(iPod touch 5)裝置                NSLog(@"iPhone 5/5s/5c(iPod touch 5)裝置");            } else if (iOSDeviceScreenSize.width == 667) {//iPhone 6                NSLog(@"iPhone 6 裝置");            } else if (iOSDeviceScreenSize.width == 736) {//iPhone 6 plus                NSLog(@"iPhone 6 plus 裝置");            } else {//iPhone4s等其它裝置                NSLog(@"iPhone4s等其它裝置");            }        }    }}

2 豎屏中狀態列20點,導覽列44點,標籤欄49點。一般內容視圖圖片大小就能設計出來了。

   1)傳統布局:為了保證豎屏和橫屏都能顯示控制項,需要設定控制項和螢幕之間的距離是絕對距離。view中的Autosizing屬性設定。

   模擬器旋轉螢幕是command + 左右箭頭

   2)AutoLayout布局:constraint定義了控制項和視圖之間的關係  只能解決介面差別小的情況

                         對齊:建立置中和對齊約束

                         Pin:建立距離和位置相關約束 constrain to margins 對邊緣的約束,一般不選中

      通過約束的屬性偵測器修改

3 Size Class與ios 8多螢幕適配

   Compact 緊湊<Any<Regular 正常

   wCompact|hCompact 適用於除5.5寸iphone外所有iphone的橫屏情況

   wRegular|hCompact 適用於5.5寸iphone橫屏情況

   wCompact|hAny wCompact|hRegular 適用豎屏情況

   預覽功能:輔助編輯器-preview-main.storyboard  點擊+可以添加預覽裝置

   由於豎屏和橫屏切換引起的布局問題快捷解決:Add Missing Constrains

4 螢幕滾動視圖UITextView和UIScrollView的適配問題要結合代碼去解決

   frame屬性:視圖架構大小

   contentSize屬性:內容視圖大小 CGSize類型

   contentInset屬性:在內容視圖周圍添加邊框,一般為了放置工具列等,含top bottom left right四個分量

   contentOffset屬性:內容視圖與螢幕滾動視圖座標原點的位移量 CGPoint類型  設定方法:-setContentOffset:animated:

*********

bounds(CGRect類型):frame和origin分量,這兩個分量的類型是CGSize和CGPoint

*********

 結局布局問題一般過程是:先使用size class-一次性添加約束-再微調 反覆迭代

 視圖布局時會回調-(void)viewDidLayoutSubviews方法 可以設定視圖

5 使用asset catalog 管理圖片:不同解析度的裝置使用不同的圖片

  開啟image.xassets-點擊+選擇菜單-設定裝置-開啟圖片檔案夾拖拽圖片-在代碼或InterfaceBuilder中使用

  1*是不同顯示屏 2*是4s Retina2*是5/5s/5c 3*是6/6p

    

 

 

 

            

       

  

IOS開發指南第四章 IOS8多解析度螢幕適配 學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.