2015-11-30 3 views
-3

У меня есть UICollectionViewController в раскадровке с Collection Header View и одна динамическая UICollectionViewCell. Я добавляю новый cells progrmatically. Я хочу построить интерфейс как две портретные ячейки в одной строке, включая изображение в ней, а другую - как таковую. Я добавил ограничения на Collection Header View и UICollectionViewCell.Изменение размера UICollectionViewCell в соответствии с размером экрана

Он отлично работает для устройства с размером экрана, который я использовал для Storyboard, но не меняет его размер в соответствии с другими экранами.

Размер UICollectionViewCell остается прежним. Например, в iPhone 4s только одна ячейка подходит и далее cell ниже ее по одному. На экране iPhone 6s два портрета cells в одной строке, но с большим промежутком между ними. В iPhone 6 он идеально подходит, потому что я использовал этот размер для storyboard.

Я пробовал метод sizeForItemAtIndexPath:, но снова я предоставляю статический размер здесь, который остается таким же и не изменяется соответствующим образом.

- (CGSize)collectionView:(UICollectionView *)collectionView layout (UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath (NSIndexPath *)indexPath { 
    return CGSizeMake(160, 256); } 
+1

Что вы думаете об этом? Вы заглянули в автоспуск? –

+0

Я не понимаю, что я должен смотреть в автозапуске. Я мало знаком с этим. –

ответ

1

SELF ОТВЕТ

Ответ Я собираюсь предоставить не представляется возможным, но она отлично работает для меня.

Я использовал приведенный ниже код для изменения размера UICollectionViewCell ширина в соответствии с размером UIView.

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
return CGSizeMake(self.view.frame.size.width/2.2, 256); } 

Здесь статическая высота подходит для меня, потому что позволяет прокручивать.

0
You set the custom method for uicollectionviewlayout for iphone5 and iphone6 etc.Its like above code.. 

@property (strong,nonatomic)uicollectionviewlayout *objLayout; 
[self setlayout]; 
-(void)setlayout 
{ 
if(iphone5s) 
{ 
    objLayout.itemSize = CGSizeMake(cellSize, cellSize); 
} 
else 
{ 
    objLayout.itemSize = CGSizeMake(cellSize, cellSize); 
} 
[self.menuCollectionView setCollectionViewLayout:objLayout]; 
} 
+0

Что вы подразумеваете под iphone5s, оно отображается незаявленным. –