1

Я следил за this answer и пытался реализовать 5 ячеек в строке, и он отлично работает, когда я проверяю iPhone 6 & iPhone SE, как показано ниже.UICollectionView с нулевым расстоянием между ячейками

Но проблема возникает, когда я пытаюсь запустить ее на iPhone 6 Plus. Может ли кто-нибудь помочь мне разобраться с вопросом, пожалуйста?

Это мой код.

screenSize = UIScreen.main.bounds 
screenWidth = screenSize.width 
screenHeight = screenSize.height 
let itemWidth : CGFloat = (screenWidth/5) 

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 
layout.itemSize = CGSize(width: itemWidth, height: itemWidth) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 
layout.sectionInset = UIEdgeInsets(top: 10.0, left: 0, bottom: 10.0, right: 0) 
collectionView!.collectionViewLayout = layout 
+0

Похоже, что это изображения. Они? шкафчик № 1000? – MNM

+0

layout.itemSize = CGSize (ширина: itemWidth, height: itemWidth), это контролирует размер ваших предметов. попробуйте использовать screenWidth/5 для itemWidth – MNM

+0

@MNM это UILabel. Yeap Я попытался поместить 'layout.itemSize = CGSize (width: screenWidth/5, height: screenWidth/5)' еще не повезло :( –

ответ

3

Он должен быть

let itemWidth : CGFloat = (screenWidth/5.0) 

Так что результат не будет округлена.

Обновлено

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

Update 2

При использовании раскадровки нет необходимости создавать UICollectionViewFlowLayout. Вы можете установить вставки и расстояния из раскадровки. Затем в вашем файле .m реализуйте это, чтобы определить размер элемента.

- (CGSize)collectionView:(UICollectionView *)collectionView 
        layout:(UICollectionViewLayout *)collectionViewLayout 
    sizeForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return yourDesiredSize; 
} 
+0

Спасибо, но это не помогает :(Тот же сценарий. –

+0

Не могли бы вы подтвердить мой обновленный ответ? –

+0

collectionview использует раскадровку и автозапуск установлен на 4 направления. –