具有相对大小的UICollectionView单元格

时间:2015-02-05 03:46:56

标签: ios xcode uicollectionview uicollectionviewcell uicollectionviewlayout

我正在尝试构建一个UICollectionView布局,它将调整UICollectionView单元格的大小,具体取决于它们的数量,因此它们可以适合特定的UICollectionView框架。例如,如果只有一个单元格,它的大小将是(50,50)并且在UICollectionView中垂直居中。如果有两个单元格,它的大小就像(48,48)也在UICollectionView框架中垂直居中,如果有3个单元格,它们的大小就像(45,45)也垂直居中,依此类推,总是如此尊重UICollectionView框架的边界。所以它有20个单元格,它的大小会像(5,5)一样非常小,它们都适合收集视图框架。为了有一个更明确的想法,你可以看看这个应用程序作为一个例子,https://itunes.apple.com/es/app/pro-metronome-tempo-keeping/id477960671?mt=8,当你添加节拍时,单元格变小但它们总是适合框架。

我从这样的事情开始:

- (UIEdgeInsets)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {

float leftInset = (collectionView.frame.size.width - (CELL_COUNT*50 + CELL_COUNT-1 * 10)) / 2;

//This kind of work for vertically centering the cells, but it doesn't respect the frame of the UICollectionView so the cells go outside of the boundaries.

return UIEdgeInsetsMake(0, leftInset, 0, 0); // top, left, bottom, right

}

知道怎么做吗?

0 个答案:

没有答案