从中心构建UICollectionView

时间:2016-03-31 08:13:02

标签: ios xcode swift

我正面临一个问题,我想要实现一个基本上从中心建立的UICollectionView

假设我有这个显示人员列表的视图:

First view

当用户继续使用 + 添加多个人时,我希望CollectionView展开但保持在视图的中心:

enter image description here enter image description here

我如何实现这种行为?

2 个答案:

答案 0 :(得分:0)

如果您没有使用autolayout和size类,那么您可以设置" center"是这样的集合视图...

[collectionView setCenter:self.view.center];

如果启用了autolayout并且您正在使用它,那么请执行此操作...

  1. 设置集合视图的CenterX和CenterY约束
  2. 设置集合视图的高度和宽度约束

答案 1 :(得分:0)

替代自定义流程布局,替代方法是将正常高度集合视图设置为正常,然后设置顶部和底部插入以使单元格在视觉上居中:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{

    let inset = (collectionView.frame.size.height - ((COUNT_OF_CELLS / CELLS_PER_ROW) * HEIGHT_OF_CELL) / 2)
    return UIEdgeInsetsMake(inset, 0, inset, 0);
}

您需要跟踪单元格总数,行上单元格数以及单元格高度,以便计算正常工作。