iOS. iphone/iPad中的尺寸、安全區,導航高度、機型判斷
參考:http://www.25xt.com/appsize
iphone:===========
*************APP圖示:20px,29px,40px,60px/(@2x,@3x)
tablviewcell的預設高度------44p'x;
statuebar:20--------navigationbar:44----tabBar:49
*****************launchImage:
1242x2208,-----
750x1334,----,
640x960,----
640x1136px;----
******************螢幕尺寸:
5/5s/SE:320*568
6/6s/7:375*667
6sP/7sp:414*736
螢幕尺寸:
5s/SE:320*568——-(圖片尺寸)
6/6s/7:375*667(手機尺寸)—————(圖片大小有導航)750*1334—(無導航)—750*1206
6sP/7sp:414*736(手機尺寸)——(圖 片尺寸有導航)1242*2208——(無導航)1242*2016
6sP/7spdisplayzoom:圖 片尺寸有導航1125*2001 —(無導航)1125*1809;
=======去掉導航的尺寸
se/5s:640*[email protected]
6/6s/7:750*[email protected]
6p/7p:1242*[email protected],或者828*[email protected]單獨放著一張
PX:1125*[email protected](去除導航和安全區域) 或者750*[email protected]的也可以。
iPhone XS
1125 X 2436px 解析度, 458 ppi
iPhone XS Max
1242 x 2688px 解析度,458 ppi
iPhone XR
828 X 1792px 解析度,326ppi
#define Device_Is_iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
//判斷iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO)
//判斷iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
//判斷iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) : NO)
#define SmartTopSpaceHigh ((Device_Is_iPhoneX||IS_IPHONE_Xs||IS_IPHONE_Xr||IS_IPHONE_Xs_Max)?84:64)
從ppi看,萬幸,一切都是熟悉的,也就是說切圖倍數沒有改變。
iPhone XS, XS Max 和 iPhone X 一致,都是 458 ppi,因此還是3倍切圖@3x就好了! iPhone XR 和 iPhone 6/7/8 一致,都是 326ppi,因此採用2倍切圖@2x 。
切圖方面沒有什麼麻煩,現在看下新尺寸對設計佈局的影響。
首先我們看下新機型的邏輯畫素(pt)尺寸(即密度無關畫素尺寸)
iPhone XS:解析度/3,即 375 x 812pt,因此跟iPhone X 的佈局完全一致;
iPhone XS Max: 解析度/3, 即 414 x 896pt;
iPhone XR:解析度/2,即 414 x 896pt。
也就是說,相當於只增加了一個尺寸 414 x 896pt,而且 XS Max 和 XR 都是全面屏需要留出安全區域。
因此如果你是以 iPhone 8 (375x667pt) 為基準做 XS Max 和 XR 的設計稿,那麼就是拉寬拉高尺寸到 414 x 896, 然後狀態列由20pt變為44pt,新增底部主頁指示器34pt。
第一部分:尺寸和解析度的對比
iphone SE 主屏尺寸:4英寸 主屏解析度:1136×640畫素
iphone 5、5S、5c 主屏尺寸:4英寸 主屏解析度:1136×640畫素
4英寸:單手操作的最佳選擇,操作錯誤率最低,適合商務辦公人士。
這個尺寸非常小巧、輕便的,同時手機握持時手感非常舒適。
第二部分:外觀顏色的對比:
iPhone SE 顏色上有銀色、金色、深空灰色和玫瑰金四種可選。
iPhone 5、5S 顏色上有銀色、金色、深空灰色等三種可選。
iPhone 5C 至今仍是配色最為豐富的iPhone。 擁有白、粉、黃、藍、綠,五個活潑色彩機身.
iPhone SE是一款高效能小螢幕的手機。比iphone5系列手機的配置、照相機都要好。
從設計的角度來說:
我們設計的APP介面尺寸還是用iphone6的尺寸(750*1334px),這樣可以向下適配iPhone SE和iphone5系列的手機。
如果是做微信端和移動web端的H5頁面設計尺寸,可以是640*1136px的尺寸。
iponeX===================
參考:http://bbs.zhulong.com/101010_group_100224/detail31160444
總的區域:375*812(1125*2436px,@3x,) ;邏輯大小(1125*2436,@3x)
ipnoneX的頂部不安全區域:顯示高度44Point ,寬度顯示375
底部不安全區域:顯示高度34point,寬度顯示375
有效的區域:顯示375*690(1125*2070,@3x),除掉導航44,頭部不安全區域:44,底部不安全區域:34
ipad======================
*********安全區、導航高度
#define TopStatuHeight [[UIApplication sharedApplication] statusBarFrame].size.height
#define TabbarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49) // 適配iPhone x 底欄高度
#define NavitionbarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?88:64) // 適配iPhone x 導航高度
#define BottomSafebarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?34:0) // 適配iPhone x 導航高度
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height
//各種裝置的解析度
#define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size):NO)
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size):NO)
#define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size):NO)
#define iPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size):NO)
#define is768x1024 ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(768, 1024), [[UIScreen mainScreen] currentMode].size):NO)
#define is1536x2048 ([UIScreen instancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(1536, 2048), [[UIScreen mainScreen] currentMode].size):NO)
判斷當前的iPhone裝置/系統版本
判斷是否為iPhone
#define sky_IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
判斷是否為iPad
#define sky_IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
判斷是否為ipod
#define sky_IS_IPOD ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"])
判斷是否為 iPhone 5SE
#define sky_iPhone5SE [[UIScreen mainScreen] bounds].size.width == 320.0f && [[UIScreen mainScreen] bounds].size.height == 568.0f
判斷是否為iPhone 6/6s/7
#define sky_iPhone6_6s_7 [[UIScreen mainScreen] bounds].size.width == 375.0f && [[UIScreen mainScreen] bounds].size.height == 667.0f
判斷是否為iPhone 6Plus/6sPlus/7Plus
#define sky_iPhone6Plus_6sPlus_7Plus [[UIScreen mainScreen] bounds].size.width == 414.0f && [[UIScreen mainScreen] bounds].size.height == 736.0f
獲取系統版本
//這個方法不是特別靠譜
#define sky_IOS_SYSTEM_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
//建議使用這個方法
#define sky_IOS_SYSTEM_VERSION_STRING [[UIDevice currentDevice] systemVersion]
判斷 iOS 8 或更高的系統版本
#define IOS_VERSION_8_OR_LATER (([[[UIDevice currentDevice] systemVersion] floatValue] >=8.0)? (YES):(NO))
**判斷是真機還是模擬器
#if TARGET_OS_IPHONE
//iPhone Device
#endif
#if TARGET_IPHONE_SIMULATOR
//iPhone Simulator
#endif
相關推薦
iOS. iphone/iPad中的尺寸、安全區,導航高度、機型判斷
參考:http://www.25xt.com/appsize iphone:=========== *************APP圖示:20px,29px,40px,60px/(@2x,@3x) tablviewcell的預設高度------44p'x; s
面試題:應用中很多jar包,比如spring、mybatis、redis等等,各自用的日誌系統各異,怎麼用slf4j統一輸出?
一、問題概述 如題所說,後端應用(非spring boot專案)通常用到了很多jar包,比如spring系列、mybatis、hibernate、各類連線資料庫的客戶端的jar包。可能這個jar包用的是logback、那個用的是log4j、那個又是log4j2, 這時候,怎麼才能保證各jar包的日誌都能輸
面試題:應用中很多jar包,比如spring、mybatis、redis等等,各自用的日誌系統各異,怎麽用slf4j統一輸出?
相同 如何 align 等等 version 試題 ava body jakarta 一、問題概述 如題所說,後端應用(非spring boot項目)通常用到了很多jar包,比如spring系列、mybatis、hibernate、各類連接數據庫的客戶端的jar包。可能這
C++類中的一些細節(過載、重寫、覆蓋、隱藏,建構函式、解構函式、拷貝建構函式、賦值函式在繼承時的一些問題)
1 函式的過載、重寫(重定義)、函式覆蓋及隱藏 其實函式過載與函式重寫、函式覆蓋和函式隱藏不是一個層面上的概念。前者是同一個類內,或者同一個函式作用域內,同名不同引數列表的函式之間的關係。而後三者是基類和派生類函式不同情況下的關係。 1.1 函式過載
java中包的理解,普通類、抽象類、介面作為方法引數傳值情況,作為返回值的傳遞情況。
一、包的概念 用於存放類檔案,包含原始檔還有.class檔案。通過包的分類管理讓功能相同的類放在一個資料夾裡。作用:為類檔案進行分類管理。 二、包的宣告格式 通常使用公司網址反寫。包名全部採用小寫字母。多層包用.連線。包的宣告必須在有效程式碼的第一行。 導包: impo
[原]敏捷開發專案中升級mysql資料庫,談談結構、資料比對,navicat for mysql + dbForge Data Compare for MySQL 足矣!
在公司專案中,我有幸負責製作“升級指令碼”。升級指令碼,無疑兩步,先結構比對,再初始資料比對。 一、結構比對 結構比對比較簡單,使用navicat for mysql 工具,“工具”-“結構同步”,選擇好“源”、“目標
讀取檔案(.txt、.excel、.csv),在c++、matlab環境中
1.開始時準備在vsat010下通過C++讀取Excel,需要 ole等 但方法總是配置不好。 2.最後做專案發現,對於excel檔案其實最好的處理方式是:用讀取.csv, 因為它們可以互相轉化只是在csv檔案中每個量直接由逗號隔開,也可以直接讀.。 在此程式碼栗子分享
IOS iPhone 開發中的檔案讀寫及資料儲存(一)
資料的儲存無疑是軟體開發中的重要課題。本文給初學者介紹下iphone開發中常見的檔案讀寫,當然,我也是初學者~ iOS的檔案儲存採用的是“沙箱機制”,也就是應用程式只能訪問自己的檔案目錄,每個應用程式的資料是獨立的,就像一個一個的沙箱一樣。這種管理方法比windows和原
嵌入式經典面試題---C中有關預處理,關鍵字const、volatile、static,位操作,等等
紅色是我標註的重點,綠色是自己新增的內容 C語言測試是招聘嵌入式系統程式設計師過程中必須而且有效的方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用資訊,此外,撇開面試的壓力不談,這種測試也是相當有趣的。 從被
《前端之路》- TypeScript (四) class 中各類屬性、方法,抽象類、多型
目錄 一、TypeScript 中的類 二、TypeScript 中類的繼承 三、TypeScript 中公共,私有與受保護的修飾符 四、TypeScript 中 靜態方法 五、TypeScr
Appium 之上劃、下劃,左劃、右劃
android 左劃 touch public bsp down client AI manage 聽說appium Java-client 新版本不支持swipe了,網上沒找到完整可用的,今天正好整理出用TouchAction替換的腳本,記錄一下,嘻嘻…… import
3分鐘熟練使用querySelector、querySelectorAll,瞭解queryCommandState、Supported...,每一個的使用方法
前段時間發現用人有querySelector這個的語法,本來想研究一下的,前段時間有點忙一直沒騰出時間來,今天有時間了趕緊研究一下,這樣的語法出現已經有很長一段時間了,可能是自己不太關注罷了。 據說是HTML5向Web API新引入了document.querySelect
jqgrid 中textarea使用回車鍵,表格高度自適應
應專案需求實現jqgrid中表格為textarea時高度自適應 在jqgrid中 編輯狀態時的表格 為input,textarea,select時回車事件將觸發單元格儲存"saveCell"; 原始碼: 1.在原始碼中搜索"textarea"找到到這段程式碼,將$(
mnist LSTM 訓練、測試,模型儲存、載入和識別
MNIST 字元資料庫每個字元(0-9) 對應一張28x28的一通道圖片,可以將圖片的每一列(行)當作特徵,所有行(列)當做一個序列。那麼可以通過輸入大小為28,時間長度為28的RNN(lstm)對字元建模。對於同一個字元,比如0,其行與行之間的動態變化可以
unity 所有碰撞器(觸發器),碰撞條件、結果,觸發條件、結果。。。以及碰撞函式、觸發函式的呼叫。
文中提到Unity元件文中將碰撞體分為3個型別: Static Collider 靜態碰撞器 These are GameObjects that do not have a Rigidbody attached, but do have a Collider attached. These object
整合VirtIO驅動Windows Server 2008、2012、2003,Windows 7、XP、8.1、8的ISO映象含序列號
Windows Server 2003 R2(中文64/32位) Windows Server 2008 R2(中文64位) Windows Server 2012 R2(中文64位) Windows XP(中文/英文-64位) Windows 7(中
Webstorm 2018漢化與啟用、破解,最新版本、長期有效、沒有閃退
1.下載工具 到官網WebStorm2018下載地址(注:由於版本更新,此貼的破解包可能與最新版本不相容,可選擇下載我附上的2018.2版本軟體安裝包): 樓主是官網2018.2版本安裝成功的,為了防止後續更新版本與破解包和漢化包不相容,這裡附上官網Websto
mongodb安裝、連線,mongodb使用者管理、建立集合、資料管理、備份恢復,副本集介紹、搭建、測試,分片介紹、搭建、測試,php的mongodb擴充套件、mongo擴充套件
21.26 mongodb介紹 21.27 mongodb安裝 21.28 連線mongodb
C# 字串換行、字串畫素高度、寬度 的結構
//字串高度、寬,行數,及字串本身 public struct hhString { public string str; //處理後的字串 public int hSnumber; //共有幾行(插入多少個斷行符) public float wid
IOS iPhone、iPad螢幕尺寸
螢幕尺寸: 普通屏 320畫素 x 480畫素 iPhone 1、3G、3GS,iPodTouch 1、2、3 3:2 Retina 屏 960畫素 x 640畫素 iPhone 4、4S,iPod Touch 4 16:9 Retina 屏 1136畫素 x 640