亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢測視網膜顯示

檢測視網膜顯示

iOS
慕標琳琳 2019-12-10 13:08:56
iOS SDK是否提供一種簡便的方法來檢查currentDevice是否具有高分辨率顯示器(視網膜)?我發現現在最好的方法是:    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 2.00) {         // RETINA DISPLAY    }
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

為了在所有iOS設備上可靠地檢測Retina顯示屏,您需要檢查設備是否正在運行iOS4 +,以及該[UIScreen mainScreen].scale屬性是否等于2.0。如果該scale屬性存在,則不能假定設備正在運行iOS4 + ,因為iPad 3.2也包含此屬性。


在運行iOS3.2的iPad上,scale將在1x模式下返回1.0,在2x模式下返回2.0-即使我們知道該設備不包含Retina顯示屏。蘋果在iPad的iOS4.2中更改了此行為:它在1x和2x模式下均返回1.0。您可以在模擬器中對此進行測試。


我-displayLinkWithTarget:selector:在存在于iOS4.x而非iOS3.2的主屏幕上測試該方法,然后檢查屏幕的縮放比例:


if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&

    ([UIScreen mainScreen].scale == 2.0)) {

  // Retina display

} else {

  // non-Retina display

}



查看完整回答
反對 回復 2019-12-11
?
達令說

TA貢獻1821條經驗 獲得超6個贊

這是一個便捷的擴展:


Swift v5更新:


extension UIScreen {


    public var isRetina: Bool {

        guard let scale = screenScale else {

            return false

        }

        return scale >= 2.0

    }


    public var isRetinaHD: Bool {

        guard let scale = screenScale else {

            return false

        }

        return scale >= 2.0

    }


    private var screenScale: CGFloat? {

        guard UIScreen.main.responds(to: #selector(getter: scale)) else {

            return nil

        }

        return UIScreen.main.scale

    }

}

用法:


if UIScreen.main.isRetina {

    // Your code

}

原版的:


extension UIScreen { 

public func isRetina() -> Bool {

    return screenScale() >= 2.0

}


public func isRetinaHD() -> Bool {

    return screenScale() >= 3.0

}


private func screenScale() -> CGFloat? {

    if UIScreen.mainScreen().respondsToSelector(Selector("scale")) {

        return UIScreen.mainScreen().scale

    }

    return nil

    }

}

用法:


if UIScreen.mainScreen().isRetina() {

 // your code

        }



查看完整回答
反對 回復 2019-12-11
  • 3 回答
  • 0 關注
  • 513 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號