1. 程式人生 > >iPhone X適配以及iOS 11可能出現的常見崩潰(info.plist配置)

iPhone X適配以及iOS 11可能出現的常見崩潰(info.plist配置)

iPhone X適配

程式啟動圖,引導圖等

iPhone X畫素尺寸1125x2436,也就是說,你的啟動圖或者是閃屏頁,App引導圖等得新加一個圖了,另外iPhone X用的是三倍圖,開發用的邏輯解析度即為375x812,可見iPhone X的寬度是和4.7尺寸一樣的,只不過高度增加許多,程式啟動頁,可以專門為iPhone X增加(如下圖),但App的其他頁面,比如整個頁面的背景圖,自己做的引導頁等就需要UI新給一張1125x2436的圖,我的做法是在程式碼中對iPhone X載入這張新圖,把這張新圖放在原背景圖等的三倍圖位置上,因為原來的三倍圖是適配5.5寸的,避免圖被拉伸。 程式啟動頁(選擇好之後,自然會多出選擇iPhone X的程式啟動頁的一項)

引導圖或背景圖等

安全區

說到iPhone X適配問題,也得和大家解釋一下安全區的概念,請看下圖此圖來自莫貝網,釋出者mobileui,在此十分感謝,綠色部分即是安全區,也就是我們開發時所使用的區域

下面詳細介紹一下非安全區域的尺寸如下圖(此圖來自莫貝網,釋出者mobileui,在此十分感謝


如何適配頂部和底部

我們適配好程式啟動頁之後,會發現導航欄和小劉海灰常近,我們需要調整一下導航欄+狀態列高度了,原來偶們都是統一64,而現在估計要重新寫個巨集了改為88,KDeviceHeight = 812 ? 88 : 64 ; 底部適配的話,注意距離底部34(邏輯解析度)就好,至於tabBar的話,還是根據不同產品需求而定。

如何禁止scrollView的自動偏移64畫素

原來我們只需要

設定automaticallyAdjustsScrollViewInsets=NO就可以了,iOS 11之後

    if (@available(iOS11.0, *)) {

self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    } else {

self.automaticallyAdjustsScrollViewInsets =NO;

    }

關於info.plist

關於定位服務。原有的NSLocationAlwaysUsageDeion改為NSLocationWhenInUseUsageDeion,因此,在原來專案中使用requestAlwaysAuthorization獲取定位許可權,而未在plist檔案配置NSLocationAlwaysAndWhenInUseUsageDeion,系統框不會彈出。建議新舊key值都在plist裡配置。 關於相簿服務。原來的Privacy - Photo Library Usage Description 改為 Privacy - Photo Library Additions Usage Description,建議新舊key值都在plist裡配置。

關於Xib和StoryBoard適配

如果你只需要適配iOS 9以上的恭喜你,你可以直接在右邊開啟安全區,直接做適配即可


如果不是的話,那就有點麻煩了,我是這樣來做的,將需要進行iPhone X的約束拖出來,如下圖


(按住control,直接拖即可)

程式碼也需要進行補充,如下,此時你該多注意是否超過了下邊的安全區

    if (KDeviceHeight ==812) {

self.navBgViewHeightConstraints.constant =88;

self.tipLabelHeightConstraints.constant +=24;

        [self updateViewConstraints];//這句加不加都不會影響效果。。。。

    }

關於webView的適配

適配好導航欄,你也把webView擴充到整個螢幕,可能會發現這樣的問題,webView內部的tabBar下邊會露出一塊內容

解決方案有兩種:

plan A:要h5前端去適配iPhone X

plan B:我們將webView去縮減回原來的高度,也就是

[UIScreenmainScreen].bounds.size.height - 88 - 34

底部34的高度就靠我們自己寫一個view來做修補, 記得webView進入二級網頁時,要把這個view隱藏,並給webView的高度增加34

if (@available(iOS11.0, *)) {

self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    }

另外,如果webView出現自動調整64的情況,可通過

if (@available(iOS 11.0, *)) {

self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    }

實現。

相關推薦

iPhone X以及iOS 11可能出現常見崩潰info.plist配置

iPhone X適配 程式啟動圖,引導圖等 iPhone X畫素尺寸1125x2436,也就是說,你的啟動圖或者是閃屏頁,App引導圖等得新加一個圖了,另外iPhone X用的是三倍圖,開發用的邏輯解

iOS iPhone X

IPhoneX 導航欄 狀態列 tabar高度 1.導航欄高度 88 非IPhoneX手機為64 2.狀態列高度 44 非IPhoneX手機為20 3.tabar高度 83 非IPhoneX手機為49    如下圖所示: //判斷iPhone X #defi

關於iPhone X

adjust pro 12px width 分享 elements ear round fixed 直接上代碼,具體原理自己搜索網上一大堆 <!DOCTYPE html> <html> <head> <meta name=

iPhone X

// iPhoneX適配 #define Is_Iphone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #define Is_Iphone_X (Is_Iphone && kScreenHeight ==

微信小程式中的iPhone X解決

原因: 微信小程式在適配iphone x 的時候 底部的橫線會出現遮擋如圖: 解決方案: 步驟一:在app.js檔案中 建立全域性變數,然後獲取裝置型號   globalData: {    

iPhone X webpage

螢幕尺寸 iphoneX的適配——安全區域(safe area) safe area確保不會被裝置圓角(corners),感測器外殼(sensor housing,齊劉海)以及底部的Home Indicator遮擋 一.頂部通欄   之前的版本採用狀態

iPhone X之MJ上拉載入更多的

問題分析    在完美適配iOS11和iPhone X上的兩套方案文章,我們已基本完成了UIScrollview的適配問題,但還會存在一個問題,當tableview/collectionView 使用上拉載入更多時,因為調整了contentInset (0,0,34,0

iphoneX佈局iOS 11.0系統

一,想必大多開發者將自己的專案跑到iPhoneX模擬器上後,會出現各種異常,包括介面佈局的變化,根據自己遇到的情況主要說下面兩點大家肯定需要修改的: (1),啟動頁不是全屏的,(如圖) 解決辦法: 如果使用的是LaunchImage方式啟動圖的話,直接在

關於H5移動端開發 iPhone X

一、 媒體查詢、 @media screen and (device-width:375px) and (device-height:812px){ #header { height: 88px; padding-top: 44px

[貝聊科技]貝聊 iPhone X 實戰

@NewPan 貝聊科技 iOS 菜鳥工程師這款為天貓定製的 iPhone,你買了嗎?由於沒摸過真機,所以嚴格意義上來說,這篇文章應該有一個更加接地氣的名字:“模擬器適配實戰”。01.適配原則由於這篇文章是實戰,就不巴拉巴拉說適配思想和安全區域的概念了,不懂的可以去看蘋果官方

UnityiPhoneX iOS 11+ Home鍵易誤操作的問題

問題描述 iPhone裝置首次去掉的傳統的Home鍵,以極大的擴充套件了螢幕尺寸,取代Home鍵的是螢幕底部中間的虛擬home條,響應上滑手勢回到主頁面。但如此造成的問題是遊戲中尤其是像王者榮耀等操作比較頻繁的遊戲很容易誤操作home鍵,導致遊戲偶然退出影響遊

微信小程式iphone x

微信小程式在適配iphone x 的時候 底部的橫線會出現遮擋這時候就要處理下:在app.js檔案中 建立全域性變數,然後獲取裝置型號 globalData: { isIphoneX: false, userInfo: null }, onShow:

iPhone X 手Q H5 頁面通用解決方案

本文作者:林煥彬 導語: iPhone X的出現,一方面對於整個手機行業的發展極具創新領頭羊的作用,另一方面也對現有業務的頁面適配帶來了新的挑戰。 對於手Q中的各業務來說,受iPhone X影響的H5頁面挺多,應該採取什麼快速有效的辦法來應對呢? 目前的H5

移動端和微信小程式對 iPhone X

一、  安全區域(safe area)   與iPhone6/6s/7/8相比,iPhone X 無論是在螢幕尺寸、解析度、甚至是形狀上都發生了較大的改變,下面以iPhone 8作為參照物,先看看iPhone X尺寸上的變化:   蘋果對於 iPhone X 的設計佈

iOS】UITableView出現左右滑動限制左右滑動(swift3.x,ios9)

一般是因為cellview的寬度比tableview的contentSize寬導致的,具體呢可能就是設定了contentInset,估計tableView計算cellView的width的邏輯並沒有考慮到設定了contentInset的情況,因為contentInset在tablevie

iOS 11 以及Xcode 9小Tips

定義 dst iscroll ets forms shu -c contents methods 網上適配iOS 11的文章很多,但還是有些坑不踩不知道,這裏總結一下自己在項目中適配iOS 11的遇到的問題。 UIScrollView以及子類frame整體下移問

Xcode10與iOS12 以及解決方案

  報錯:library not found for -lstdc++.6.0.9 報錯:library not found for -libstdc++.6.0.9 libstdc++、libstdc++.6、libstdc++6.0.9 OpenCV 靜態連結 libstd

移動端以及百分比佈局與rem比較

前言 對於熟悉pc端的小夥伴來說,對於靜態頁面的佈局,一般都是沒有什麼問題的,為了保持各瀏覽器顯示的一致性,無論是選擇優雅降級還是漸進增強,我們有時不得不做相容性處理,比如css中的hack技術,css3中新增屬性新增一些瀏覽器字首等,但在移動端對h5新增的屬性都比較友好,

Xcode10.x的部分問題

因為我們專案是一個Workspace,由若干個庫組成(元件化比較碎),又涉及到海外和國內(存在很多差異性),整個專案的編譯是由每個庫的指令碼(每個庫生成會支援32位和64位,每次編譯前會清除歷史快取),然後由一個總的Release指令碼編譯生成出目標檔案。 廢話這麼多主要是表明升級Xcode10.x以後會遇

網頁的縮放,以及移動的

          從佈局出發:寬度自適應,常用百分比的方式。由於父級元素採用百分比的佈局方式,隨著螢幕的拉伸,它的寬度會無限的拉伸。而子元素由於採用了浮動,那麼它們的位置也會固定在兩端。該寬度自適應在新的時代有了新的方法,隨著彈性佈局的普及,它