Ios UICollectionView目标C中的2个不同单元格大小
我想使用UICollectionView,可以创建以下布局: 如您所见,有两种不同大小的单元格。一个是行的1/4,另一个是3/4。是否可以使用UICollectionView创建此类布局 有人能教我怎么做吗???或者有样品吗???我已经学习了很多教程和参考资料。但是我还是不知道怎么做 谢谢Ios UICollectionView目标C中的2个不同单元格大小,ios,objective-c,collectionview,Ios,Objective C,Collectionview,我想使用UICollectionView,可以创建以下布局: 如您所见,有两种不同大小的单元格。一个是行的1/4,另一个是3/4。是否可以使用UICollectionView创建此类布局 有人能教我怎么做吗???或者有样品吗???我已经学习了很多教程和参考资料。但是我还是不知道怎么做 谢谢 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionV
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
return [(NSString*)[arrayOfStats objectAtIndex:indexPath.row] sizeWithAttributes:NULL];
}
使用此方法可以为单元格返回不同的大小。请参考此链接有不同的方法:
-(CGSize)collectionView:(UICollectionView*)collectionView布局:(UICollectionViewLayout*)collectionViewLayout SizeFormiteIndeXPath:(NSIndexPath*)indexPath
方法来实现
UITableviewCell
(在单个单元格中加载1/4大小和3/4大小的单元格),并通过自动布局更改它们的大小,可以轻松获得外观
目前我已经硬编码了项目宽度(72.0和23.0)。5.0的其余部分将用于临时间距和边缘设置。这段代码会给你想要的东西
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
return 10.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
return 10.0;
}
#pragma mark - CollectionViewFlowLayout Methods
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGSize newSize = CGSizeZero;
newSize.height = 100;
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBounds.size;
if(indexPath.item % 4 == 0 || indexPath.item % 4 == 3)
{
// Size : 1/4th of screen
newSize.width = screenSize.width * 0.23;
}
else
{
// Size : 3/4th of screen
newSize.width = screenSize.width * 0.72;
}
return newSize;
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(10, 2.0, 10, 2.0);
}
感谢您的回复,我已经阅读了自定义布局教程。但是我不明白。你能告诉我更多怎么做吗??对不起打扰你了!是的,这是可能的。查看为您的
UIControllerView
创建自定义布局,这将构建所需的界面;例如,您可以开始阅读有关如何创建自定义布局的内容。这两个不同大小的单元格是否相关?@Fogmeister,您是否在自定义UITableViewCell
?:)@是的。即使不相关,也可能更容易(对于刚接触集合视图的人来说)坚持使用表视图并在单元格内创建布局:D