我有一个自定义的collectionview单元格,它有几个标签和一个图像,都在单元格中水平居中。它在故事板中看起来很棒(一切都局限于中心X)。单元格的大小可调整到屏幕宽度,以便每行显示2个单元格。
当我运行具有不同屏幕尺寸的应用时,没有任何项目居中。标签和图像彼此正确居中,但它们在单元格中偏离中心。有没有经验解决这个问题?非常感谢![![在此处输入图片说明] [1]] [1]
编辑1: 我查了一下,这不是电池上的限制因素搞砸了。
编辑2: 它似乎在我的sizeForItemAtIndexPath:。当我注释掉这个功能时,单元格布局完美,但间距变得混乱。屏幕越大,细胞越远。我希望所有细胞之间有2个空间。
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: collectionView.frame.size.width / 2 - 3, height: collectionView.frame.size.width / 2 - 3)
}
答案 0 :(得分:0)
声音就像你在标签和图像本身之间创建了居中约束,而不是实际的细胞。确保在标签和单元格之间以及图像和单元格之间创建了居中约束。但是,如果没有你当前限制的图片,那就没有任何意义。
答案 1 :(得分:0)
我遇到了类似的问题,对我来说有用的是在我的代表中为collectionView:layout:insetsForSectionAtIndex:
(在UICollectionViewDelegateFlowLayout协议中定义)添加了一个实现。
例如:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsZero;
}