根据屏幕大小更改UICollectionViewCell大小

时间:2015-11-30 13:33:01

标签: ios objective-c uicollectionview uicollectionviewcell

我在故事板中有UICollectionViewController Collection Header View和一个动态UICollectionViewCell。我以程序方式添加新的cells。我想将接口构建为一行中的两个肖像单元,包括图像和其他单元格。我已为Collection Header ViewUICollectionViewCell添加了约束。

它适用于我用于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); } 方法,但我再次给出静态大小,它保持不变并且不会相应地改变。

function enableCategoryPopup(event) {
    event.stopPropagation();
    var buttonOffset = $(this).offset();
    $('.category-popup').css({
      top: buttonOffset.top + 10,
      left: buttonOffset.left +10
    });
    $('.category-popup').show(100);
  }

2 个答案:

答案 0 :(得分:1)

自我解答

我要提供的答案是不可行的,但对我来说效果很好。

我已使用下面显示的代码根据UICollectionViewCell大小调整UIView宽度。

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

这里静态高度对我来说很好,因为它允许滚动。

答案 1 :(得分: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];
}