我有一些动态添加到 UICollectionView
的单元格。我想做的是更改这些单元格的插图,使它们出现在 UICollectionView
的中心。这是因为添加的单元格越多,单元格高度就会发生变化(它是单行 UICollectionView
)。
- (UIEdgeInsets)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
// This method is used to center when one tile is entered else use a standard no inset
if (self.wordArray.count == 1) {
CGFloat newWidth = (self.tileCollectionView.bounds.size.width - self.tileCollectionView.bounds.size.height);
return UIEdgeInsetsMake(0, (newWidth / 2), 0, (newWidth/2));
} else {
return UIEdgeInsetsMake(0, 0, 0, 0); // top, left, bottom, right
}
}
对于任何单元格,我如何获得对
UICollectionViewCell
当前高度的引用,因为它们的形状都相同(当添加更多单元格以继续适合一行时,它们的高度/宽度会发生变化。一旦我获得了对单元格高度的引用,我就可以添加如下内容:
self.tileCollectionView.bounds.size.height - CELLHEIGHT/2 -- 用作单元格的插图。
最佳答案
如果您使用的是网格样式布局,我会尝试这种方法:
collectionView:layout:sizeForItemAtIndexPath:
您需要实现 UICollectionViewFlowLayoutDelegate 才能这样做。要让它们堆叠,请将最小偏移量设置为单元格本身大小的负数。这可能需要一些反复试验。
关于ios - 使 UICollectionViewCell 出现在 UICollectionView 的中心,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18407187/