我在故事板中有一个UICollectionViewCell单元格。前6个细胞的细胞大小为45,最后一个细胞的细胞大小为50。
故事板单元格大小的宽度= 60。
在iOS模拟器4上运行时会出现以下问题。
如果您在位置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;
}
可以使用一段时间的演示项目
在进一步调查中,我发现是因为缩放模拟器。屏幕配有4s模拟器。我不知道在设备上是否会导致任何问题。
100%=>结果好的 75%=>出现红色背景线 50%=>结果好的 33%=>结果好的 25%=>出现红色背景线