2015-05-14 2 views
1

У меня есть просто просмотр коллекции, и я хотел бы отобразить сетку (2 столбца x N строк) с вертикальной прокруткой.UICollectionView: удалить поле между ячейками

Так я реализую UICollectionViewDelegateFlowLayout методы:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    let collectionViewWidth: CGFloat = collectionView.frame.size.width 
    let cellSize: CGFloat = collectionViewWidth/2.0 
    return CGSizeMake(cellSize, cellSize); 
} 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets { 
    return UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0) 
} 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0.0 
} 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0.0 
} 

Несмотря на это, клетки в поле зрения сбора по-прежнему разделены пробелами .. где я ошибаюсь?

+0

Это не может быть ваш реальный код ('cellFeedWidth' не определен). –

+1

- это 'cell' и' cellFeedWidth' в строках 3 и 4 опечатки? – luk2302

+0

ops, исправлю, извините –

ответ

3

В именах методов вы указываете минимальные значения, а не абсолютные или максимальные.

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

Например, на экране шириной 320 пикселей вы поместите четыре ячейки 80x80 без пустых пространств. Если вы дадите им ширину в 60 пикселей, вы закончите с 20 пикселями пустого пространства, которое будет равномерно распределено между каждой ячейкой.

+0

лет !! поэтому проблема была в моем вычислении ширины. Я заменяю UIScreen.mainScreen(). Bounds.width/2, и теперь работает –

+0

И все же код выше отлично работает в моем тестовом проекте. Вы уверены, что ваши ограничения layoutViews в порядке. Его код воняет, что вам нужно ввести ширину основных экранов, чтобы заставить это работать. –

Смежные вопросы