簡體   English   中英

如何檢查方法systemFontOfSize(fontSize:weight :)在iOS中是否存在

[英]How to check does method systemFontOfSize(fontSize: weight:) exist in iOS

我的應用程序部署目標是iOS 7.0,我想在具有iOS 8以上版本的設備上使用systemFontOfSize(fontSize: weight:)方法。 iOS 7不支持此方法(具有weight:參數),並且我的應用程序崩潰。 特別是對於iOS 7,我想設置Helvetica Light字體而不是SystemFont Light。

最好的檢查方法是什么? 我需要檢查iOS版本還是可以檢查方法? 怎么樣?

我用迅捷嘗試

if let font = UIFont.systemFontOfSize(12, weight: UIFontWeightLight) 

要么

respondsToSelector方法。 它對我不起作用。

respondsToSelector可以按預期工作:

    let font: UIFont
    if UIFont.respondsToSelector("systemFontOfSize:weight:") {
        println("YES")
        font = .systemFontOfSize(12, weight: UIFontWeightLight)
    }
    else {
        println("NO")
        font = UIFont(name: "HelveticaNeue-Light", size: 12)!
    }

我建議使用HelveticaNeue而不是Helvetica,因為系統字體是Neue one。

使用Swift書中推薦的#available表達式。

if #available(iOS 8, *) {
    // Use iOS 8 APIs on iOS
} else {
    // Fall back to earlier iOS APIs
}

摘自:Apple Inc.“ Swift編程語言(Swift 2預發行版)。” iBooks。 https://itun.es/us/k5SW7.l

檢查ios版本是最好的方法

if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0 {
    // code
} else {
    // code
}

暫無
暫無

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

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