3

我的应用程序部署目标是 iOS 7.0 我想systemFontOfSize(fontSize: weight:)在 iOS 8+ 的设备上使用方法。iOS 7 不支持这种方法(带weight:参数),我的应用程序崩溃了。特别是对于 iOS 7,我想设置 Helvetica Light 字体而不是 SystemFont Light。

检查它的最佳方法是什么?我需要检查iOS版本还是我可以检查方法?如何?

我使用 swift 并尝试过

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

或者

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

4

3 回答 3

6

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之一。

于 2015-09-10T09:45:20.550 回答
1

使用#availableSwift 书中推荐的表达式。

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

摘自:Apple Inc. “The Swift Programming Language (Swift 2 Prerelease)”。电子书。https://itun.es/us/k5SW7.l

于 2015-09-10T09:57:08.953 回答
0

检查ios版本是最好的方法

if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0 {
    // code
} else {
    // code
}
于 2015-09-10T09:22:30.117 回答