以编程方式将UICollectionViewCell宽度设置为UICollectionView宽度

时间:2018-02-23 12:37:20

标签: ios objective-c uicollectionview uicollectionviewcell

在集合视图中,我们如何根据整个集合视图设置宽度和高度的像元大小。它将设置小到大的设备(例如:如果集合视图的总宽度= 375.0000,我们将其分为3.所以它将为所有大型和小型设备设置。)

ArrayList

2 个答案:

答案 0 :(得分:0)

在代码中设置UICollectionViewDelegateFlowLayout方法

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{ 
    return CGSize(width:(collectionView.bounds.size.width/numberOfCellInRow), height:270)
} 

并在单元格的awakeFromNib()方法中添加这两行,以根据单元格大小更新单元格的约束。

override func awakeFromNib()
{ 
    self.contentView.autoresizingMask.insert(.flexibleHeight)
    self.contentView.autoresizingMask.insert(.flexibleWidth)
}

答案 1 :(得分:0)

对于手机和平板电脑(适用于所有屏幕)

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        return CGSizeMake(self.view.frame.size.width/3, 125);

    }
    else
    {
        NSLog(@"width %f",self.view.frame.size.width);
        return CGSizeMake(self.view.frame.size.width/3, 150);
    }
}