UICollectionView的HeaderView和cell在屏幕旋转的时候怎么自动改变大小
我给一个UICollectionView添加了autolayout的约束,但是在旋转屏幕的时候,CollectionView的大小根据view改变了,HeaderView和cell的大小没有变化,
应该是我在设置尺寸的时候用的当前view的宽高原因,但是不知道在什么地方改
红色是collectionView的背景色,灰色的是HeaderView的背景色
这是加HeaderView的代码
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *headerView = [[UICollectionReusableView alloc]init];
headerView.backgroundColor = [UIColor redColor];
if (kind == UICollectionElementKindSectionHeader){
headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
}
[headerView addSubview:self.pathLabel];
return headerView;
}
这是CollectionView的代码
self.edgesForExtendedLayout = UIRectEdgeNone;
_flowLayout = [[UICollectionViewFlowLayout alloc]init];
CGFloat flowItemSize = self.view.bounds.size.width / 4 - 5;
_flowLayout.minimumInteritemSpacing = 5.0;//item 之间的行的距离
_flowLayout.minimumLineSpacing = 5.0;//item 之间竖的距离
_flowLayout.itemSize = (CGSize){flowItemSize, flowItemSize};
_flowLayout.headerReferenceSize = CGSizeMake(self.view.bounds.size.width, 50);
_flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
_directoryCollection = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:_flowLayout];
[_directoryCollection registerClass:[FileIconCell class] forCellWithReuseIdentifier:@"FileIconCell"];
[_directoryCollection registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
_directoryCollection.delegate = self;
_directoryCollection.dataSource = self;
_directoryCollection.backgroundColor = [UIColor redColor];
[_directoryCollection setUserInteractionEnabled:YES];
_directoryCollection.showsVerticalScrollIndicator = NO;
[self.view addSubview:_directoryCollection];
[_directoryCollection reloadData];
_directoryCollection.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *pic_top = [NSLayoutConstraint constraintWithItem:_directoryCollection attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:5.0f];
NSLayoutConstraint *pic_bottom = [NSLayoutConstraint constraintWithItem:_directoryCollection attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0.0f];
NSLayoutConstraint *pic_left = [NSLayoutConstraint constraintWithItem:_directoryCollection attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:5.0f];
NSLayoutConstraint *pic_right = [NSLayoutConstraint constraintWithItem:_directoryCollection attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1 constant:-5.0f];
[self.view addConstraints:@[pic_top,pic_bottom,pic_left,pic_right]];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论