J'essaie de voir si c'est possible. On dirait que la définition deIstItemSize de UICollectionViewFlowLayout ne fonctionne pas très bien dans iOS 9. Cela fonctionne parfaitement bien dans iOS 10. Je pense donc à mettre en œuvre la méthode sizeForItemAt .. uniquement pour iOS 9. Existe-t-il un moyen de le faire en utilisant @available ?? Sera vraiment utile si quelqu'un peut faire la lumière.
Je voulais exécuter du code lorsque la version est inférieure à iOS 11, voici comment je l'ai fait:
if #available(iOS 11, *) {
// This is probably empty
} else {
// This code will only be executed if the version is < iOS 11
}
Ce n'est pas la solution la plus propre, mais je ne pouvais pas trouver un meilleur moyen et cela fait son travail.
Hein? Faites comme les docs disent faire :
@available(iOS, obsoleted: 10.0)
Ou
@available(iOS, introduced: 9.0, obsoleted: 10.0)
let systemVersion = UIDevice.currentDevice().systemVersion
println("iOS\(systemVersion)")
if systemVersion == 9.0 {
//Do Something
}
Vous pouvez utiliser comme ci-dessous:
@available(iOS 10.0, *)
private func userNotificationCenter(center: UNUserNotificationCenter, willPresentNotification notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) {
logParklee.verbose("willPresentNotification")
}
Ou
if #available(iOS 10, *) {
// use UIStackView
} else {
// show sad face emoji
}
Ou
guard #available(iOS 9, *) else {
return
}
Ou
@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
}