1. 程式人生 > >iPhone X,iPhone XS,iPhone XR,iPHone XS Max 適配(只說實現,不BB)

iPhone X,iPhone XS,iPhone XR,iPHone XS Max 適配(只說實現,不BB)

今天凌晨蘋果新發布了三款手機,分別是iPhone XS,iPhone XR,iPhone XS Max,其中iPhone XS的螢幕尺寸和iPhone X的是一致的,另外兩款都有了新的尺寸,具體尺寸如下

具體原理性的東西就多說了,因為iPhoneX系列都一樣,本文只說明一下具體怎麼做,要適配螢幕,首先得讓他以正確的姿勢啟動,如果你使用的是LaunchScreen.storyboard,就不需要考慮這個了,但如果你使用的是LaunchImag,就需要提供正確的啟動圖。需要注意的是XR使用的@2x的圖。

啟動圖尺寸       機型                  命名

640 × 960       iPhone4s         

[email protected]

640 × 1136      iPhone5s          [email protected]

750 × 1334      iPhone              [email protected]

1242 × 2208    iPhonePlus       [email protected]

1125 × 2436    iPhoneX, XS      [email protected]

828 x 1792      iPhoneXR          [email protected]

1242 x 2688    iPhoneXS Max    [email protected]

本文提到的這四款手機都有一個共同的特點,就是“齊劉海”+底部觸控條

針對這種樣式的螢幕,我們處理方法是一樣,幾個巨集直接搞定(至於怎麼判斷是不是iPhone X系列,這裡也不多說了)
#define kNavBarHeight              (iphoneX ? 88.0 : 64.0)
#define kBottomBarHeight        (iphoneX ? 34.0 : 0)
#define kContentHeight             (kScreenHeight - kNavBarHeight-kBottomBarHeight)

針對繼承自UIScrollView的,需要處理一下內邊距

第一步:關閉自動調整內邊距
if (@available(iOS 11.0, *)) {
        [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

第二步:在使用的地方手動設定內邊距(千萬別全域性設定,容易出事)
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, kBottomBarHeight, 0);
這樣設定以後,底下的觸控區域就能正常顯示內容了,而且當UIScrollView滑到最底部的時候,不會被遮住。

除此之外,有些比較大的控制元件,產品會要求按照螢幕比例進行調整,小螢幕的顯示的小一點,大螢幕的顯示大一點,這個也是兩個巨集搞定
#define kScaleH                   (kScreenHeight/667.0)
#define kScaleW                  (kScreenWidth/375.0)
解釋一下為什麼除的667和375,因為UI給的設計圖示按照667 * 375的螢幕給的,如果你們的UI小姐姐給的設計圖是按照iPhone5s的尺寸設計的,分母就要換成568和320。

相關推薦

iPhone XiPhone XSiPhone XRiPHone XS Max 實現BB

今天凌晨蘋果新發布了三款手機,分別是iPhone XS,iPhone XR,iPhone XS Max,其中iPhone XS的螢幕尺寸和iPhone X的是一致的,另外兩款都有了新的尺寸,具體尺寸如下 具體原理性的東西就多說了,因為iPhoneX系列都一樣,本文只說明

頁面字型media query ) em的使用

首先來說說em的使用 使用者的瀏覽器預設渲染的文字大小是“16px”,換句話說,Web頁面中“body”的文字大小在使用者瀏覽器下預設渲染是“16px”。 而“em”是一個相對的大小,是其相對於元素父元素的大小。比如說:如果在一個< div >設

全面屏小米8三星s8等

引入問題: 使用者提出自己的小米8手機執行app時候底部有黑邊,因為是內部系統不方便截圖,我這裡就從miui裡找了一個圖來代替 開始還擔心是螢幕適配的問題(dimens適配),但是系統中只適配橫向,縱向不做適配; 下次發版前給使用者的臨時處理方案: 設定-全面屏-應用全面屏執行設定

【Android】狀態列相關判斷MIUIFlyme狀態列圖示顏色切換獲取狀態列高度沉浸式狀態列相關等

對於狀態列相關適配這個事情,真是讓人頭疼的一個模組。因為負責的專案主題色偏偏是白色,不但要去適配 MIUI ,Flyme(因為這兩個都可以實現沉浸式,並且圖示可以切換成黑色),也要分別適配 Android 6.0 以下, Android 6.0 起兩種不同情況(6.0 起原

三款新iPhone劉海屏沒跑了!蘋果要求iOS APP必須

原標題:三款新iPhone劉海屏沒跑了!蘋果要求iOS APP必須適配 2017年蘋果最重磅的新品就 2017年蘋果最重磅的新品就是iPhone X了。可從外形的角度,由於頂部“劉海”的存在,距離完美的全面屏還差一截。 同時,這種異形切割的設計也對iOS軟體的適配帶來了挑戰和提

給定一個句子包含字母和空格 將句子中的單詞位置反轉單詞用空格分割, 單詞之間只有一個空格前後沒有空格。

foo x11 sdi ocl ref margin dia 分割 lns 2巳嘿2啃40必刪8蔚http://t.docin.com/mqjnf44635 4瓶3ck芳8g0琳c鋪巢0http://t.docin.com/uemr9596 pf絞職9ZPFV壕5htt

Expo大作戰(三十四)--expo sdk api之LinearGradient(線性漸變)KeepAwake保持屏幕休眠,IntentLauncherAndroid,Gyroscope

con border app face 圖片 parent ext activate -- 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與

放心嗨!Android 9 Pie發布網易雲易盾加固已第一時間

工作 工程師 ffffff 谷歌 時間 water 科技 RoCE image 自5月份谷歌在年度開發者大會上首次亮相Android 9 P後,其正式版Android 9 Pie昨天正式發布,網易雲易盾移動安全已在昨天第一時間裏進行了最終適配。 早在今年初,易盾就做好了相關

輸入兩個整數求他們相除的餘數。用帶參的巨集來實現程式設計序。

import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanne

3. Project Euler15 給定一個20*20的方格從左上角到右下角的路徑有多少條?允許向右和向下走)

【微--策--略】 1. 五個洞排成一排,其中一個洞裡藏有一隻狐狸。每個夜晚,狐狸都會跳到一個相鄰的洞裡;每個白天,你都只允許檢查其中一個洞。怎樣才能保證狐狸最終會被抓住? 解答:有個問題 錯了 下面是少一天的推理 第一天2洞 第二天2洞 都沒有的話 證明它在後三個裡面 第三天4洞 第四天4

類的關係泛化, 實現關聯聚合組合依賴

類的關係 在UML類圖中,常見的有以下幾種關係: 泛化(Generalization), 實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency) 1. 泛化(Generalizati

究極難題 :一個執行10秒以上至無窮的呼叫函式成功後有返回值。在多工執行緒中怎麼實現呼叫卡住該執行緒?

究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒? Note:一旦呼叫函式,中途無法取消。 思路一:讓其執行在獨立執行緒內。加超時時間。 1. 在超時時間內函式有返回值,則函式執行結束。則獨立執行緒結束。 2. 在超時時

福利!NodeJs爬取網路教程並生成PDF檔案以阮一峰JavaScript教程和ES6教程為例附原始碼和PDF檔案

前言 你想一夜暴富嗎?你想一夜成名嗎?你想開蘭博基尼泡妞嗎?你想拿鈔票點菸嗎?你想成為世界主宰嗎?那麼,趕緊往下看吧,雖然它不能達成前面所說的任 何一個夢想,但是,你將獲得: 通過命令列將某網站的內容轉成PDF檔案 通過NodeJS爬蟲將某網路教程(例如阮一峰的JavaScript教程和ES6教

.vbb格式轉換為txt格式matlab實現)在此以Caltech Pedestrian Dataset資料集的annotations為例

%% 下載matlab的vbb工具庫 連結:https://pan.baidu.com/s/1GVvimekjNh4M_D4grM0Btw 提取碼:ymfn   %% clc  clear all addpath(genpath('自己存放code3.2.1資料夾

電動汽車的車型複雜多樣TBOX如何做好汽車的匯流排資料功能協議

一般可以藉助 CANalyst-II 匯流排報文收發器工具與汽車的 CAN 匯流排相連,可以獲取到 CAN總線上廣播的 CAN 資料包。通過 CanTest 軟體可以實時的觀察到 CAN 總線上正在傳送的資料包。 從大量的 CAN 資料包中進行逆向分析,找到汽車車身的控制指令對應的是哪一個 CA

可摺疊裝置您的應用準備好了嗎?

作者: Leo Sei, Android 產品經理 我們在 11 月初舉辦了 Android 開發者峰會,並在會上宣佈 Android 將對摺疊屏裝置 (Foldable) 提供原生支援,幫助開發者為三星等硬體合作伙伴即將推出的新裝置做好準備。 建議您仔細閱讀以下資訊,確保您的應用能夠在這種新式

給定一個句子包含字母和空格 將句子中的單詞位置反轉單詞用空格分割, 單詞之間只有一個空格前後沒有空格。 比如: 1 “hello xiao mi”-> “mi xiao hello”

題目描述 給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello” 輸入描述: 輸入資料有多組,每組佔一行,包含一個句子(句子長度小於100

【劍指Offer】輸入一個正數s打印出所有和為s 的連續正數序列序列大小至少為2 C++

題目用例: s = 15,那麼由於1+2+3+4+5 = 4+5+6=7+8 = 15,所以存在3個這樣的序列。 分析: 由於序列大小至少為2,我們定義兩個變數l和r,分別表示序列的最小值和最大值。 對於r而言,r取何值其實是有一個範圍的,即當序列只有2

ReactMobx裝飾器Unexpected token (7:2)支援@

花了兩天時間適配,網上太多誤人子弟的內容。。。。。。。。。。。。 D:\Program\antd>create-react-app demo6 D:\Program\antd\demo6>npm install --save mobx mobx-react re

【演算法】給定兩個字串確定一個字串重新排列後能否變成另一個字串java實現

分析:兩個字串的長度都不相同時,不可能是變位詞 package com.billkang.algorithm; import java.util.Arrays; /** * 給定兩個字串,確