2016-02-26 2 views
9

Я хочу уменьшить размер между ячейками в строке. Теперь он выглядит:Как изменить пространство между ячейками в UICollectionView?

enter image description here

Я пытаюсь это, для уменьшения размера между ними:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 

, но это не помогает мне. Что я делаю неправильно?

+1

@patchdiaz это не дубликат! Я пробовал эту версию, но она не работает. Вот почему я создал этот вопрос –

+0

Вы правы! Deleted;) – fdiaz

+0

Вы хотите, чтобы ваши ячейки были выровнены по левому краю, т. Е. У вас будет много свободного места справа? –

ответ

17
//Objective c 
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
     return CGSizeMake((collectionView.frame.size.width/3)-20, 100); 
    } 

// Swift 2.0 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSizeMake((collectionView.frame.size.width/3) - 20, 100) 
} 

// Swift 3.0 
override func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: CGFloat((collectionView.frame.size.width/3) - 20), height: CGFloat(100)) 
} 
+2

@ ZacharyGover вы можете создать резервную копию этой «претензии» с помощью надежный источник? Большинство модулей Apples все еще написаны в Objective-C, и он по-прежнему широко используется сегодня. – JAL

+0

Я не думаю, что Objective-C почти устарел. Еще быстрая разработка. В каком-то месте еще Obj-C лучше, чем Свифт. Lib, разработанный в obj-c, используется в быстром использовании моста ...... !!!! Надеюсь, ты это знаешь ... !! :) –

+0

Вы знаете, что я сказал, что почти устарел? Да, некоторые вещи все еще написаны вокруг Objective-C, хотя по мере обновления Apple Swift они переписывают все это. Хотя это все еще означает, что большинство разработчиков пишут в Swift. Мое главное, что я пытался понять, это дать оба ответа, как вы это делали. Потому что скоро это будет устаревшим, и люди в будущем не смогут понять это, если они новичок в программировании, когда они обращаются к этому сообщению за помощью. – Zach

9

Перейти к раскадровке, щелкните правой кнопкой мыши на просмотр коллекции и enter image description here

И Проверьте минимальное расстояние между клеткой и свести его к нулю.

+2

Я сделал это уже. Не помогло –

+0

Теперь проблема может быть в ячейке UIcollectionview ..... проверить ограничения в ячейке UICollectionview ...... там не должно быть в любое время заполнения, остальное мне нужно пройти через ваш код –

+1

В рассказном столе это два раздела, один из них - просмотр коллекции, а в коллекции есть сборка представления viewview .... проверили минимальный интервал в обоих? –

0

При создании CollectionView В StoryBoard или Xib, Перейти к StoryBoard или Xib и установить эти значения из

enter image description here

+0

Можете ли вы привести пример кода о том, как этого достичь? \ – pczeus

+0

нет, я не установил его из XIB. На XIB я просто установил ячейку просмотра коллекции –

3

На вашем коде, вы должны создать IBOutlet с вашей точки зрения сбора, а затем назначить collectionViewLayout как таковой:

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
layout.sectionInset = UIEdgeInsets(top: 20, left: 2, bottom: 10, right: 2) 
layout.minimumInteritemSpacing = 0 
layout.minimumLineSpacing = 0 
collectionView!.collectionViewLayout = layout 
+0

Ты мой герой. – BEm

1

Его простой

let layout = contactsCollectionView.collectionViewLayout as? UICollectionViewFlowLayout 
layout?.minimumLineSpacing = 8 
Смежные вопросы