UICollectionView单元格大小ContentView问题

时间:2015-11-26 03:14:16

标签: ios uicollectionview uicollectionviewcell

我在故事板中有一个UICollectionViewCell单元格。前6个细胞的细胞大小为45,最后一个细胞的细胞大小为50。

故事板单元格大小的宽度= 60。

在iOS模拟器4上运行时会出现以下问题。

enter image description here

如果您在位置2,4,6处看到单元格,则会出现UICollectionView的红色背景。

我在子类的 layoutSubView 中得到以下内容。

Frame = {{0, 0}, {50, 60}}
Frame = {{0, 0}, {45, 60}}
Frame = {{0, 0}, {45, 60}}
Frame = {{0, 0}, {45, 60}}
Frame = {{0, 0}, {45, 60}}
Frame = {{0, 0}, {45, 60}}
Frame = {{0, 0}, {45, 60}}


- (void)layoutSubviews
{
    [super layoutSubviews];

    NSLog(@"Frame = %@",NSStringFromCGRect(self.bounds));
    self.contentView.frame = self.bounds;
}

另外,在awakefromnib中添加了调整大小,但没有效果。

-(void)awakeFromNib{
    [super awakeFromNib];

   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin |UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth ;
}

上面打印的结果是正确的,尺寸是完美的。

在ViewController中添加以下内容也无法正常工作

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
    return 0.0;
}
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
    return 0.0;
}

url.

可以使用一段时间的演示项目

在进一步调查中,我发现是因为缩放模拟器。屏幕配有4s模拟器。我不知道在设备上是否会导致任何问题。

100%=>结果好的 75%=>出现红色背景线 50%=>结果好的 33%=>结果好的 25%=>出现红色背景线

enter image description here enter image description here enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

尝试像这样设置collectionView的约束 enter image description here