Я использую Xcode 6 Beta 3, iOS 8 SDK. Создайте целевой iOS 7.0 с помощью Swift. Пожалуйста, обратитесь к моей проблеме шаг за шагом со скриншотами ниже.
У меня есть UICollectionView в раскадровке. 1 Prototype UICollectionViewCell, который содержит 1 ярлык в центре (без правила автореализации). Фиолетовый фон состоял в том, чтобы отметить contentView, который создается во время выполнения Cell. В конечном итоге это представление будет правильно изменено на моем 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 (см. Ниже приведенный ниже ответ на экотакс от 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 **/