我使用集合视图构建了自定义日历。我的问题是,当我添加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!)
我希望日历在哪里:
这就是它覆盖整个屏幕的方式:
答案 0 :(得分:2)
这一行:
collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
正在创建一个新的UICollectionView实例,并将其框架设置为与self.view
相同(因此它覆盖了整个屏幕)。我怀疑你真的想要使用在故事板中建立的现有的集合视图实例(并且可能正在呈现 - 但是在新的后面!)。检查故事板以查看CollectionView是否连接到视图控制器的collectionView属性:
如果是这样,您可以注释掉上面的行(也可能是下两行),因为在实例化视图控制器时将建立链接。
如果您没有故事板实例,那么只需修改框架以适合您想要的位置和大小,而不是使用self.view.frame
。