2015-09-10 25 views
2

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

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

我使用SWIFT並試圖

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

respondsToSelector方法。 它沒有爲我工作。

回答

5

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

0

檢查IOS版本是最好的辦法

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

Chetan Prajapati,謝謝你的回答。這種情況適用於1次更正:使用NSFoundationVersionNumber_iOS_7_1取代NSFoundationVersionNumber_iOS_7_0。如果這是最好的,我會等待一段時間再提出一些意見並接受你的回答。 –

+0

感謝您的溫柔。 :) –

1

使用在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

+0

好推薦,但它起作用,因爲斯威夫特2,還沒有被釋放 –

相關問題