我想要制作屏幕,其中集合视图Cell应该在设备处于纵向时填充整个屏幕宽度, 当设备旋转时,集合视图在1个部分中显示2个单元格。
为了更好的可视化,请参见下图。
我尝试将单元格宽度=设备宽度(用于纵向),但在屏幕中心的横向单元格显示中。
是否可以使用集合视图进行此类设计? 如果有可能那么我该如何实现呢?或任何其他想法将不胜感激。
答案 0 :(得分:1)
使用尺寸等级以不同方式定位横向或纵向。
答案 1 :(得分:0)
你可以试试这个
#define kNumberOfCellsInARowPortrait 1
#define kNumberOfCellsInARowLandscape 2
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
return 0;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
if (UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation)) {
CGFloat cellWidth = floor((CGRectGetWidth(collectionView.bounds)-5) / kNumberOfCellsInARowLandscape);
return CGSizeMake(cellWidth, cellWidth);
} else {
CGFloat cellWidth = floor((CGRectGetWidth(collectionView.bounds)-5) / kNumberOfCellsInARowPortrait);
return CGSizeMake(cellWidth, cellWidth);
}
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[self.collectionView reloadData];
}