J'utilise Xcode 6 Beta 3, iOS 8 SDK. Construisez Target iOS 7.0 à l'aide de Swift. Veuillez vous référer à mon problème étape par étape avec les captures d'écran ci-dessous.
J'ai un UICollectionView dans Storyboard. 1 prototype UICollectionViewCell qui contient 1 étiquette au centre (pas de règle de redimensionnement automatique). Le fond violet était de marquer un contentView qui est généré au moment de l'exécution par la cellule, je suppose. Cette vue sera redimensionnée correctement en fonction de mon UICollectionViewLayoutDelegate éventuellement, mais pas sur iOS 7. Notez que j'utilise Xcode 6 et que le problème ne se produit que sur iOS 7.
Lorsque je crée l'application sur iOS 8. Tout va bien.
Remarque: Le violet est le contentView , le bleu est mon UIButton avec un coin arrondi.
Cependant, sur iOS 7, toutes les sous-vues à l'intérieur de la cellule se réduisent soudainement à l'image de (0,0,50,50) et ne se conforme plus à ma règle de redimensionnement automatique.
Je suppose qu'il s'agit d'un bogue dans le SDK iOS 8 ou Swift ou peut-être Xcode?
Mise à jour 1: Ce problème existe toujours dans le Xcode 6.0.1 officiel! La meilleure solution est celle suggérée par KoCMoHaBTa ci-dessous en définissant le cadre dans cellForItem de la cellule (vous devez cependant sous-classer votre cellule). Il s'est avéré qu'il s'agissait d'une incompatibilité entre le SDK iOS 8 et iOS 7 (consultez la réponse d'écotaxe ci-dessous citée par Apple).
Mise à jour 2: collez ce code au début de votre cellForItem et les choses devraient bien se passer:
/** Xcode 6 on iOS 7 hot fix **/
cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
/** End of Xcode 6 on iOS 7 hot fix **/
contentView
redimensionnement avec la cellule fonctionne très bien pour contourner le problème. Je suppose que dans iOS 8, Apple a changé quelque chose dans la façon dont les vues du contenu des cellules sont gérées lors de leur création dans Interface Builder (qui est toujours un peu une boîte noire de toute façon). Mais le fait qu'il change de comportement en ciblant iOS 7 est sûrement un bogue.
contentView
bords sur les bords des cellules.