Проблема автоматического изменения размера кадра UICollectionViewCell contentView в ячейке прототипа Storyboard (Xcode 6, iOS 8 SDK) возникает только при работе на iOS 7

Я использую Xcode 6 Beta 3, iOS 8 SDK. Сборка целевой iOS 7.0 с использованием Swift. Пожалуйста, обратитесь к моей проблеме шаг за шагом со скриншотами ниже.

У меня есть UICollectionView в раскадровке. 1 Прототип UICollectionViewCell, который содержит 1 метку в центре (без правила авторазмера). Фиолетовый фон должен был отмечать contentView, который генерируется во время выполнения Ячеей. Это представление будет изменено должным образом на основе моего UICollectionViewLayoutDelegate в конечном итоге, но не на iOS 7. Обратите внимание, что я использую Xcode 6, и проблема возникает только на iOS 7.

Когда я создаю приложение на iOS 8. Все в порядке.

Примечание: фиолетовыйcontentViewСиний - моя UIButton с закругленным углом.

Однако в iOS 7 все дочерние элементы внутри ячейки внезапно сжимаются до кадра (0,0,50,50) и больше не соответствуют моему правилу авторазмера.

Я предполагаю, что это ошибка в iOS 8 SDK или Swift или, может быть, Xcode?

Обновление 1: Эта проблема все еще существует в официальном Xcode 6.0.1! Лучшее обходное решение похоже на то, что KoCMoHaBTa предложил ниже, установив кадр в cellForItem ячейки (хотя вы должны создать подкласс для своей ячейки). Оказалось, что это несовместимость между iOS 8 SDK и iOS 7 (проверьте ответ ecotax ниже, цитируемый Apple).

Обновление 2: Вставьте этот код в начале вашегоcellForItem и все должно быть хорошо

/** 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 **/

Ответы на вопрос(12)

Ваш ответ на вопрос