【发布时间】:2016-02-29 00:55:11
【问题描述】:
我在故事板单元格中有一个 UICollectionViewCell。前 6 个单元格大小为 45,最后一个单元格大小为 50。
故事板单元格大小的宽度 = 60。
在 iOS Simulator 4s 上运行时会出现以下问题。
如果您在位置 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% => 结果OK 33% => 结果还行 25% => 出现红色背景线
【问题讨论】:
-
你能提供更多关于你的布局的信息吗?你的“celloctionViewCells”的大小不同吗?如果是这样,那么您可能需要为您的 collectionView 使用自定义布局而不是 flowLayout。
标签: ios uicollectionview uicollectionviewcell