如果您想将单元格整齐地打包在一起,即使另一个单元格中的其他内容更大,该怎么做?
如果你看下图,第一串是最大的,但是如果我想像第一串一样整齐、紧密地把其他的电池包在一起,不管大小,这是怎么做的呢?
无论侧面和上下的尺寸如何,我都想这样做。我希望按照这张图片中的箭头所指的方式布置单元格。
更新:第一行文本是两个单元格打包在一起。
如果您想将单元格整齐地打包在一起,即使另一个单元格中的其他内容更大,该怎么做?
如果你看下图,第一串是最大的,但是如果我想像第一串一样整齐、紧密地把其他的电池包在一起,不管大小,这是怎么做的呢?
无论侧面和上下的尺寸如何,我都想这样做。我希望按照这张图片中的箭头所指的方式布置单元格。
更新:第一行文本是两个单元格打包在一起。
您必须使用UICollectionViewFlowLayout来实现这一点
注意:以下信息来自Raywenderlich 博客
你可以继承 UICollectionViewLayout来创建你自己的自定义布局,但是 Apple 慷慨地为开发人员提供了一个名为UICollectionViewLayout的基本“基于流”的布局。它根据元素的大小一个接一个地布置元素,就像一个网格视图。您可以开箱即用地使用此布局类,或将其子类化以获得一些有趣的行为和视觉效果。
你可以在Raywenderlich 博客中看到一个很好的例子
示例代码:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
NSString *searchTerm = self.searches[indexPath.section]; FlickrPhoto *photo =
self.searchResults[searchTerm][indexPath.row];
CGSize retval = photo.thumbnail.size.width > 0 ? photo.thumbnail.size : CGSizeMake(100, 100);
retval.height += 35; retval.width += 35; return retval;
}
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(50, 20, 50, 20);
}
您可以实现的委托方法比这更多。下面给出示例
collectionView:layout:sizeForItemAtIndexPath
collectionView:layout:insetForSectionAtIndex: