【发布时间】:2013-01-03 18:58:34
【问题描述】:
我正在尝试在集合视图单元格上设置零填充,我已将视图控制器上的“最小间距”设置为:
但单元格之间仍然存在间隙:
我也希望单元格根据框架的宽度很好地包裹,例如每个单元格的宽度为 50px,所以如果有六个单元格并且我将框架宽度设置为 150px,它将显示两个三个细胞系。
但是,如果我通过以下方式将框架宽度设置为 150:
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect frame = self.collectionView.frame;
frame.size.width = 150;
self.collectionView.frame = frame;
}
看起来像上面的屏幕截图(太宽了)。
如果我将它设置为小得离谱的值,例如 10,它会在某种程度上换行:
UICollectionViewCell 设置为 50 x 50:
我也尝试过以编程方式设置单元格的大小,并且还删除了 UIEdgeInset:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0, 0, 0, 0);
}
我已禁用自动布局,以防有任何干扰。关于如何移除填充并根据框架宽度/高度将它们包裹起来的任何建议?
【问题讨论】:
-
我无法重现此问题。我用单个视图开始了一个空项目,添加了一个集合视图作为子视图,将设置设置为与上面显示的相同,并将情节提要中的框架设置为 175x175。这将单元格隔开(流程布局自然会这样做)。我使用您的代码更改 viewDidLoad 中的帧大小,它更改为 150 宽,并且单元格填补了空白。您的问题中未包含其他内容。
-
啊!您正在使用 UICollectionViewController。这样,您就无法更改集合视图的大小。它总是填满屏幕(除非您将它嵌入到容器视图控制器中)。让我看看插图是否可以调整...
-
@jrturton 感谢您花时间尝试重现此内容。我刚刚重新开始,尽管问题仍然存在。我在这里上传了一个可能有用的例子:dl.dropbox.com/u/71160589/example.zip
标签: objective-c uicollectionview uicollectionviewcell