CollectionViewCell中的标签/图像不居中

问题描述:

我有一个自定义collectionview单元格,它有一对标签和一个图像,全部在单元格中水平居中。它在故事板上看起来很棒(一切都被限制在X中心)。单元格的大小可根据屏幕宽度进行调整,以便每行显示2个单元格。CollectionViewCell中的标签/图像不居中

当我用不同的屏幕尺寸运行应用程序时,没有任何项目居中。标签和图像彼此适当地居中,但它们在单元内偏离中心。任何人有解决这个问题的经验? [!] [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

我已经的细胞的'contentView'不是之前正确上浆本身的经验。如果在你离开之后你做了一些类似'cell.contentView.frame = cell.contentView.bounds'的东西? –

+1

请包括您的布局约束的屏幕截图。 –

+0

它不需要处理约束,请参阅我的编辑,谢谢! – tahoecoop

声音就像您在标签和图像本身之间创建的居中约束,而不是实际的单元格。确保你已经在你的标签和单元之间以及你的图像和单元之间创建了一个居中约束。虽然没有你目前的限制,但没有任何说明。

+0

这不是约束,请参阅我的编辑,谢谢! – tahoecoop

我和你有类似的问题,我的工作是在我的委托中为collectionView:layout:insetsForSectionAtIndex:(如UICollectionViewDelegateFlowLayout协议中定义的)添加实现。

例如:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView 
         layout:(UICollectionViewLayout *)collectionViewLayout 
     insetForSectionAtIndex:(NSInteger)section { 
    return UIEdgeInsetsZero; 
} 
+0

感谢您的回复。我明白了,它保留了'sizeForItemAtIndexPath:'我如何拥有它。那么我的'insetForSectionAtIndex:'在每一边都是2。那么'minimumInteritemSpacingForSectionAtIndex'为2.0,'minimumLineSpacingForSectionAtIndex'为2.0。一切正常,再次感谢! – tahoecoop