Дженкинс: Как собрать несколько проектов верхнего уровня из репозитория git?

Сбой показывает вам явно, что не так:

UICollectionView должен быть инициализирован с помощью параметра макета, отличного от нуля.

blockquote>

Если вы проверьте документацию Apple для UICollectionView , вы обнаружите, что единственным инициализатором является initWithFrame:collectionViewLayout:. Кроме того, в параметрах для этого инициализатора вы увидите:

frame

Прямоугольник рамки для представления коллекции, измеренный в точках , Происхождение кадра относится к супервину, в котором вы планируете его добавить. Этот кадр передается суперклассу во время инициализации.

layout

Объект макета, используемый для организации элементов. В представлении коллекции хранится сильная ссылка на указанный объект. Не должно быть nil.

blockquote>

Я выделил важную часть. Вы должны использовать initWithFrame:collectionViewLayout: для инициализации вашего UICollectionView, и вы должны передать ему объект non-nil UICollectionViewLayout.


. Один из способов исправить это - просто изменить порядок инициализации:

UICollectionViewFlowLayout* flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake(100, 100);
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:flowLayout];
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];

Обратите внимание, что в приведенном выше примере я предположил, что вы хотите использовать self.view.frame в качестве кадра self.collectionView. Если это не так, вставьте любой кадр, который вы хотите.

21
задан Community 23 May 2017 в 12:25
поделиться