如何检查 iOS 中是否存在方法 systemFontOfSize(fontSize: weight:)
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 版本还是我可以检查方法?怎么样?
我使用 swift 并尝试了
if let font = UIFont.systemFontOfSize(12, weight: UIFontWeightLight)
或
respondsToSelector
方法。
它对我不起作用。
检查 ios 版本是最好的方法
if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0 {
// code
} else {
// code
}
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 一种。
使用 Swift 书中推荐的 #available
表达式。
if #available(iOS 8, *) {
// Use iOS 8 APIs on iOS
} else {
// Fall back to earlier iOS APIs
}
摘自:Apple Inc.“Swift 编程语言(Swift 2 预发行版)。”电子书。 https://itun.es/us/k5SW7.l
我的应用程序部署目标是 iOS 7.0
我想在 iOS 8+ 的设备上使用方法 systemFontOfSize(fontSize: weight:)
。 iOS 7 不支持此方法(使用 weight:
参数),我的应用程序崩溃了。特别是 iOS 7 我想设置 Helvetica Light 字体而不是 SystemFont Light。
最好的检查方法是什么?我需要检查 iOS 版本还是我可以检查方法?怎么样?
我使用 swift 并尝试了
if let font = UIFont.systemFontOfSize(12, weight: UIFontWeightLight)
或
respondsToSelector
方法。
它对我不起作用。
检查 ios 版本是最好的方法
if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0 {
// code
} else {
// code
}
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 一种。
使用 Swift 书中推荐的 #available
表达式。
if #available(iOS 8, *) {
// Use iOS 8 APIs on iOS
} else {
// Fall back to earlier iOS APIs
}
摘自:Apple Inc.“Swift 编程语言(Swift 2 预发行版)。”电子书。 https://itun.es/us/k5SW7.l