簡體   English   中英

iOS iPhone物理屏幕尺寸(以毫米為單位)

[英]iOS iPhone physical screen size in millimeters

有沒有辦法在iOS中獲取以毫米為單位的iPhone物理屏幕尺寸?

唯一可用的信息是每種iPhone型號的PPI,屏幕尺寸以像素為單位,而不是以毫米為單位。

這是Swift CGSize擴展,允許檢索與當前設備有關的iPhone物理屏幕尺寸(以毫米為單位):

注意:它僅支持iPhone X和更早的型號。

extension CGSize {
    /**
    * Physical device screen size in millimeters
    */
    static func physicalDeviceScreenSize() -> CGSize? {
        guard let ppi = deviceModelNameToPpiMapping[UIDevice().modelName], ppi != 0 else {
            return nil
        }

        let width = (UIScreen.main.nativeBounds.width * 25.4) / ppi
        let height = (UIScreen.main.nativeBounds.height * 25.4) / ppi

        return CGSize(width: width, height: height)
    }

    static private var deviceModelNameToPpiMapping: Dictionary<String, CGFloat> {
        // PPI values derived from https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
        return [
            "iPhone10,3": 458.0, // iPhone X
            "iPhone10,6": 458.0, // iPhone X
            "iPhone11,2": 458.0, // iPhone Xs
            "iPhone11,4": 458.0, // iPhone Xs Max
            "iPhone11,6": 458.0, // iPhone Xs Max
            "iPhone11,8": 326.0, // iPhone Xr
        ]
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM