UICollectionViewFlowLayout

UICollectionViewFlowLayout

我已经使用收藏夹视图构建了自定义日历。我的问题是,当我添加UICollectionViewFlowLayout时,它会覆盖整个屏幕,而不会停留在UICollectionView内。如何使UICollectionViewFlowLayout保留在UICollectionView内?这是我的代码:

    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
    layout.sectionInset = UIEdgeInsets(top: 100, left: 10, bottom: 1, right: 10)
    let width = UIScreen.mainScreen().bounds.width
    layout.itemSize = CGSize(width: width/10, height: 35)

    collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
    collectionView!.dataSource = self
    collectionView!.delegate = self
    collectionView!.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")
    collectionView!.backgroundColor = UIColor.whiteColor()

    self.view.addSubview(collectionView!)

我希望日历在哪里:

这是它覆盖整个屏幕的方式:

最佳答案

这行:

collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)

正在创建UICollectionView的新实例,并将其框架设置为与self.view相同(因此它覆盖了整个屏幕)。我怀疑您实际上是想使用在情节提要中建立的现有集合视图实例(可能正在显示-但在新实例的后面!)。检查您的情节提要,以查看CollectionView是否已连接到视图控制器的collectionView属性:

如果是这样,您可以只注释掉上面的行(可能也注释掉后面的两行),因为链接将在实例化视图控制器时建立。

如果您没有情节提要实例,则只需修改框架以适合所需的位置和大小,而不要使用self.view.frame

10-05 20:23