關於iPhone裝置不同顯示尺寸適配的一些方法,iphone裝置尺寸適配

來源:互聯網
上載者:User

關於iPhone裝置不同顯示尺寸適配的一些方法,iphone裝置尺寸適配

 

------關於適配的理解------

1、什麼是適配?

    適配是對不同硬體和系統軟體的適應,硬體包括螢幕顯示,處理器,記憶體等等(目前主要是螢幕適配,iPhone 6s新增了3D Touch功能,其他硬體功能並沒有實質性的改變),軟體主要是不同iOS系統(有些在最新系統(通常會盡量向下相容)不再支援的方法都需要做一些判斷)。

2、為什麼要適配?

     適配是為了相容不同的裝置。

3、螢幕適配主要有哪些方式?

    (1)等比例適配(所有視圖按螢幕大小縮放,相對位置不變):a、純程式碼;b、代碼+storyboard(不使用自動布局);c、代碼+storyboard(使用自動布局)。

    (2)自由適配(主要使用自動布局):由於同一布局在不同大小的螢幕上顯示效果不一樣,如果僅僅是等比縮放,有時顯示效果差強人意;在顯示內容尺寸符合操作習慣(這個看自己咋想)的情況下,螢幕大小最大的區別是屏大顯示內容多(如瀏覽新聞等,除了只有一些固定圖片、控制項等的簡潔介面),a、約束內容的間距及相對大小;b、約束內容的寬高及相對位置;c、約束內容的間距、寬高。

 

------適配的一些方法------

情況一

(等比適配,代碼+storyboard,不使用自動布局,建議用iPhone6的尺寸布局),通過擷取螢幕尺寸,重定義CGRectMake,更新所有視圖及其子視圖的frame,完成等比適配。注意字型、圖片,以及tableView、collectionView。

1、——————AppDelegate.h添加:

+ (void)ergodicView:(UIView *)view;

 

2、——————AppDelegate.m添加:

#define ScreenHeight [UIScreen mainScreen].bounds.size.height

#define ScreenWidth [UIScreen mainScreen].bounds.size.width

#define ScreenScaleX (ScreenWidth/375)//相對於蘋果6螢幕

#define ScreenScaleY (ScreenHeight/667)

 

//按螢幕自動適配storyBoard所有視圖

+ (void)ergodicView:(UIView *)view{

    

    if (view.subviews.count != 0) {

        for (UIView *temp in view.subviews) {

            temp.frame = CGRectMake1(temp.frame.origin.x, temp.frame.origin.y, temp.frame.size.width, temp.frame.size.height);

            [self ergodicView:temp];

        }

    }

}

 

//修改CGRectMake

CG_INLINE CGRect

CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

{

    CGRect rect;

    rect.origin.x = x * ScreenScaleX;

    rect.origin.y = y * ScreenScaleY;

    rect.size.width = width * ScreenScaleX;

    rect.size.height = height * ScreenScaleY;

    return rect;

}

 

--------------------

情況二

使用autolayout布局後,可重新設定視圖的frame。等viewDidLoad載入完後,再延遲改變視圖的frame,不延遲會被storyboard重新設定。也可以在viewDidLayoutSubviews或viewDidAppear重新設定frame

 

相關文章

聯繫我們

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