2016-11-07 2 views
0

У меня есть CollectionView в UIView. Как изменить размер CollectionViewCell на 50% ширины экрана? Я хочу создать 2 столбца в CollectionView.Изменение размера CollectionViewCell в UIView

class Class_MyUIViewClass: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate 
{ 

Также у меня есть изображение и этикетка в CollectionViewCell.

ответ

0

Вы можете использовать sizeForItemAt метод UICollectionView управлять размером ячейки его

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    let screenWidth = UIScreen.main.fixedCoordinateSpace.bounds.width 
    return CGSize(width: screenWidth/2, height: yourHeight) 
} 

подтверждает также в UICollectionViewDelegateFlowLayout

+0

myfile.swift: 49: 10: Метод экземпляра 'CollectionView (CollectionView: макет: sizeForItemAtIndexPath :) почти соответствует факультативное требование 'CollectionView (_: willDisplaySupplementaryView: forElementKind: в :)' протокола '' UICollectionViewDelegate –

+0

«CGSizeMake 'недоступен в Swift –

+0

См. обновленный ответ – Rajat

0

Предполагая, что вы знаете нужную высоту ячейки, соответствуют UICollectionViewDelegateFlowLayout:

class Class_MyUIViewClass: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { 

и оснащение sizeForItemAtIndexPath:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    let desirednumberOfCollumns: CGFloat = 2 
    let width = collectionView.frame.width/desirednumberOfCollumns 
    return CGSize(width, yourHeight) 
} 
+0

' CGSizeMake 'недоступен в Swift :) –

+0

@ Vladimir Zhelnov: true, thanks! – shallowThought

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