Размер ячейки UICollectionView в AutoLayout

Поэтому я использую AutoLayout в раскадровке с AutoLayout . Я пытаюсь установить размер ячейки на основе самого collectionView , и он основан на методе [collectionView: layout: sizeForItemAtIndexPath:] . collectionView также зависит от автоматического макета, и он дает неправильный размер в первый раз (я предполагаю, что это до отображения макета). Я знаю, что они будут иметь правильный размер после viewDidLayoutSubviews метода viewDidLayoutSubviews но он вызывает двойную перезагрузку элементов collectionView , что приводит к сбоям пользовательского интерфейса во время выполнения.

Ниже приведен метод [collectionView: layout: sizeForItemAtIndexPath:] моей реализации.

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { CGSize innerSize = CGSizeMake(galleryView.frame.size.width - 80, galleryView.frame.size.height - 40); GLPhotoAsset *photo = [(PCOpticsPhotoPoint *)_cluster.points[indexPath.row] photo]; CGFloat ratio = MIN(innerSize.width / photo.size.width, innerSize.height / photo.size.height); return CGSizeMake(photo.size.width * ratio, photo.size.height * ratio); } 

2 Solutions collect form web for “Размер ячейки UICollectionView в AutoLayout”

Убедитесь, что проверено свойство просмотра Clip Subviews. , , ,

И ваше свойство cellView cellView должно быть правильным в разделе «Размер и местоположение». , ,

Может быть, это поможет вам. , ,

Поскольку вы получаете неправильный размер макета до того, как вызывается sizeForItemAtIndexPath: затем перейдите в раскадровку и проверьте размер ячейки, заданный для этих 3 – CollectionView , CollectionViewCell и CollectionViewFlowLayout

Сделайте их такими же. (также размер по отношению к размеру просмотра коллекции по умолчанию, как вам нужно)

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.