我有一个UINavigationController来控制两个ViewControllers,VC1和VC2。
图为VC2。并且有一个UICollectionView作为VC2.view的子视图,也有一个UICollectionCell嵌入在UICollectionView中,如下所示。
但是当我从VC1推送到VC2时,UICollectionCell的帧不正确。我写的代码是:
//VC2.m
UICollectionViewFlowLayout *l = [[UICollectionViewFlowLayout alloc]init];
l.itemSize = CGSizeMake(self.bounds.size.width, self.bounds.size.height);
l.minimumLineSpacing = 6.0f;
l.sectionInset = UIEdgeInsetsMake(0, 0, 0, 6.0);
l.scrollDirection = UICollectionViewScrollDirectionHorizontal;
UICollectionView *parallaxCollection = [[UICollectionView alloc]initWithFrame:frame collectionViewLayout:l];
[parallaxCollection registerClass:[CollectionCell class] forCellWithReuseIdentifier:@"CollectionCell"];
[self addSubview:parallaxCollection];
我在initWithFrame:(CGRect)框架中得到的单元格框架是(0,-32,320,568):
//CollectionCell.m
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
}
return self;
}
我有什么问题?
答案 0 :(得分:0)
尝试在初始化后调整子视图的大小。 开发人员库说:
layoutSubviews - 如果您需要对子视图的布局进行更精确的控制,而不是约束或自动调整行为提供,请实现此方法。
使用
-(void)layoutSubviews
答案 1 :(得分:0)
我修复了它,只需在VC2中添加此代码:
self.automaticallyAdjustsScrollViewInsets = NO;
因为UICollectionViewCell有一个滚动视图作为子视图。