私はこれが可能かどうかを見ようとしています。 UICollectionViewFlowLayoutのestimatedItemSizeの設定は、iOS9ではあまりうまく機能しないようです。iOS10では完全に正常に機能します。したがって、iOS9に対してのみsizeForItemAt ..メソッドを実装することを考えています。@ availableを使用してそれを行う方法はありますか?誰かが光を当てることができれば本当に役に立ちます。
IOS 11のバージョンが低いときにコードを実行したかったのですが、次のようにしました。
if #available(iOS 11, *) {
// This is probably empty
} else {
// This code will only be executed if the version is < iOS 11
}
これは最もクリーンなソリューションではありませんが、より良い方法を見つけることができず、その役割を果たします。 ????
え?として行う ドキュメントは行うように言う :
@available(iOS, obsoleted: 10.0)
または
@available(iOS, introduced: 9.0, obsoleted: 10.0)
IOS 10よりも低いバージョンlowerでのみ実行されるコードを実行する場合は、次の構文を使用できます。
if #available(*, iOS 9) {
// Code here will only run on iOS 9 and below.
}
let systemVersion = UIDevice.currentDevice().systemVersion
println("iOS\(systemVersion)")
if systemVersion == 9.0 {
//Do Something
}
以下のように使用できます。
@available(iOS 10.0, *)
private func userNotificationCenter(center: UNUserNotificationCenter, willPresentNotification notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) {
logParklee.verbose("willPresentNotification")
}
または
if #available(iOS 10, *) {
// use UIStackView
} else {
// show sad face emoji
}
または
guard #available(iOS 9, *) else {
return
}
または
@available(iOS 7, *)
func iOS7Work() {
// do stuff
if #available(iOS 8, *) {
iOS8Work()
}
}
@available(iOS 8, *)
func iOS8Work() {
// do stuff
if #available(iOS 9, *) {
iOS9Work()
}
}
@available(iOS 9, *)
func iOS9Work() {
// do stuff
}