激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - 適配iPhoneXS max和iPhoneX R的方法示例

適配iPhoneXS max和iPhoneX R的方法示例

2021-05-13 17:16zolobdz IOS

這篇文章主要介紹了適配iPhoneXS max和iPhoneX R的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

9.18更新:經測試發現ios12修改了非劉海屏safearea的值! 拿iphone6豎屏情況下為例ios11中返回的safeareainsets為(0,0,0,0);ios12中返回的safeareainsets為(20,0,0,0);是的這個top-20是狀態欄。這里大家要注意下,不應該盲目使用safeareainsets,而是使用我下面類似的判斷劉海屏的方法來區分劉海屏后再決定是否使用safeareainsets;

今年的三款新手機已經發布,加上xcode10已經發布gm seed版本,也可以使用模擬器對新機進行適配,所以趕緊開始吧!

三款手機的屏幕大小

適配iPhoneXS max和iPhoneX R的方法示例

圖片官網地址

上面是像素單位,然后我們找到對應的倍數,換算成-點pt;

適配iPhoneXS max和iPhoneX R的方法示例

圖片官網地址

最后得到:

iphone xs 375812pt*

iphone xr 414896pt*

iphone x 414896pt*

總結一下,因為x已經都是陪過了xs基本上就是忽略不管了,而新出的xr和xs max雖然屏幕像素不同(一個lcd屏幕一個oled屏幕)所以一個2x一個3x最終得到的pt大小是一樣的(這里可以看出蘋果果然沒白給你便宜)。加上ios11開始引入了safeareainsets,如果之前使用了這個屬性,我們幾乎不需要對項目中的頁面做調整,那么最后只剩下一部要做 添加兩個尺寸的啟動圖。

添加啟動圖

為什么要添加啟動圖?

當我們在xr的模擬器直接跑之前的老項目(已經適配過iphonex),做如下打印,你會發現:

適配iPhoneXS max和iPhoneX R的方法示例

wtf?難道是xcode10的bug?再試試xs max我相信你會得到一樣的結果。

這里解釋下。你是否還記得iphonex剛出來的時候跑沒有適配過的項目,會導致app打開屏幕上下各有幾十像素的黑屏?原因是因為沒有假如iphonex的啟動頁!同理我們需要先引入啟動頁。

適配iPhoneXS max和iPhoneX R的方法示例

圖片官網地址

這是啟動圖尺寸,直接照著像素單位切圖即可。

需要注意的是,當你的老項目用xcode10打開后,打開images.xcassets文件夾,再到launchimage文件夾下時,找不到以上兩個新機型的占位框,最簡單的辦法就是右鍵添加一個新的launchimage,然后刪除老的launchimage,記得新建的文件夾要改名launchimage哦。

適配iPhoneXS max和iPhoneX R的方法示例

新建的launchimage會出現兩個新機型的占位框:

適配iPhoneXS max和iPhoneX R的方法示例

啟動頁添之后,再做打印,就會的到正確的屏幕尺寸了!

適配iPhoneXS max和iPhoneX R的方法示例

頁面適配

由于從ios11開始引入了safeareainsets這個應該是老話題了,所以這里稍微提供下我自己的心得吧。

頁面是陪經常要寫個中判斷,代碼中時常需要用到safeareainsets或者判斷劉海屏等工具,所以我習慣在項目中寫一個uimanager的單例,這里面除了提供一些適配需要的屬性,還可以寫一下tableview適配等。

?
1
2
3
4
5
6
7
8
9
10
11
@interface dduimanager : nsobject
 
@property (nonatomic, assign, readonly) uiedgeinsets safeareainset;
/*
 * 是否是劉海屏
 * */
@property (nonatomic, assign, readonly) bool ishairhead;
 
+ (instancetype)sharedmanager;
 
@end
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@implementation dduimanager
 
- (uiwindow *)keywindow {
  return [uiapplication sharedapplication].keywindow;
}
 
- (uiedgeinsets)safeareainset {
  if (@available(ios 11.0, *)) {
    if (self.keywindow) {
      return self.keywindow.safeareainsets;
    }
  }
  return uiedgeinsetszero;
}
 
- (bool)ishairhead {
  if (uiinterfaceorientationislandscape([uiapplication sharedapplication].statusbarorientation)) {
    return self.safeareainset.left > 0.0f;
  }else {
    // ios12 非劉海屏狀態欄 20.0f
    return self.safeareainset.top > 20.0f;
  }
}
 
@end

這樣寫除了使用方便以外,還避免了一部分關于系統的條件編譯等,因為safeareainset是ios11才出的.而且在e lse中會返回uiedgeinsetszero,使得使用時可以省去一些if-else語句,例如:

適配iPhoneXS max和iPhoneX R的方法示例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.jianshu.com/p/703b86c9108a

延伸 · 閱讀

精彩推薦
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 日本成人午夜 | 亚洲国产精品久久久久婷婷老年 | 毛片免费看电影 | 92看片淫黄大片欧美看国产片 | 欧美一区二区黄 | 国内精品久久久久影院不卡 | 91av在线影院 | 欧美日韩亚洲不卡 | 一区二区三区国产视频 | 久久黄色影院 | 中文字幕综合在线观看 | 色99久久 | hd porn 4k video xhicial | 91九色丨porny丨国产jk | 黄色二区三区 | 亚洲午夜在线视频 | 黄污网址 | 黑人操穴| 一级大片一级一大片 | 久久久久久久久久亚洲 | 欧美精品激情在线 | 国产精品久久999 | 线观看免费完整aaa 欧美在线一级 | 欧美国产一区二区三区激情无套 | 国产精品一区二区视频 | 久久久国产精品网站 | 黄色免费观看网站 | 奇米888一区二区三区 | 日韩在线激情 | 少妇色诱麻豆色哟哟 | 毛片福利 | 成人免费观看在线视频 | 热99精品视频 | 久久精品久久精品国产大片 | 91久久国产露脸精品免费 | 国产午夜电影 | 国产欧美一区二区三区免费看 | 久久国产免费视频 | 免费香蕉成视频成人网 | 国产精品成人免费一区久久羞羞 | 成人三级电影在线 |