我已经在界面构建器中设置了一个UICollectionView:
画框为320x180
像元大小为320x180
流布局单元格尺寸为320x180
插入全部为0
但是,以某种方式,当我的iniWithFrame方法被调用时,它使我身高降低了。 160!而不是180。
我的自定义单元格也是320x180;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self = [[[NSBundle mainBundle] loadNibNamed:@"FSGalleryCell" owner:self options:nil] objectAtIndex:0];
}
return self;
}
不仅如此,UICollectionView Y的原点比接口生成器中的原点低约50点。
我没有任何限制。我试图禁用自动版式。
另外,如果我尝试手动执行此操作:单元格内容不显示。
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(320, 180);
}
只有当我这样离开时:
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}
我希望最后一个可以正常工作,因为它是320x160。任何更大的东西都不会显示。
在iOS7中一切正常。这些问题出现在iOS6上。
感谢所有帮助!!
最佳答案
您需要设置automaticallyAdjustsScrollViewInsets
和edgesForExtendedLayout
来匹配您想要在iOS 6中发生的事情。
如果您希望获得与iOS 6相同的功能,而导航栏下方没有任何内容且没有自动调整插图,则可以在UIViewController中执行以下操作:
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
self.edgesForExtendedLayout = UIExtendedEdgeLeft | UIExtendedEdgeBottom | UIExtendedEdgeRight;
}