Вопрос

Я использую Xcode 6.0 beta 4 и обнаружил, что кнопки в UICollectionViewCell это не ответ на нажатие.

Подробности как:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton имеет два autolayout ограничения, чтобы поставить UIButton в вертикальном центре и горизонтальном центре в Cell )

Теперь сделайте cell размер что-то вроде:(300, 1000)

Запустите приложение в симуляторе iPhone или на устройстве с iOS 7.0 или 7.1.x, кнопка недоступна для прикосновения, но протестируйте в симуляторе iOS 8.0, все в порядке.Также, если я поменяю ячейку size к (300, 200), кнопка работает.

Я думаю, что это ошибка в этой бета-версии Xcode, верно?

И где я могу сообщить об ошибке Apple?

Это было полезно?

Решение

Они забыли установить autoresizingMask для contentView UICollectionViewCell.

это исправить

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

Другие советы

Похоже, что на самом деле это не ошибка, а проблема несовместимости устройств iOS 7 с использованием Xcode 6. пост экотакса описывает это более подробно, а вот ответ Apple DTS:

В iOS 7 размеры представлений содержимого ячеек изменялись с помощью масок автоматического изменения размера.В iOS 8 это было изменено: ячейки перестали использовать маски автоматического изменения размера и начали изменять размер представления содержимого в макетеSubviews.Если перо закодировано в iOS 8, а затем декодировано в iOS 7, у вас будет представление контента без маски автоматического изменения размера и других средств для изменения размера.Поэтому, если вы когда-нибудь измените рамку ячейки, представление содержимого не изменится.

Приложениям, которые развертываются обратно на iOS 7, придется обойти эту проблему, изменив размер самого представления контента, добавив маски автоматического изменения размера или добавив ограничения.

Решение Алексея выше поможет:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top