这已被问过几次了,我试图在我的代码中包含所有答案的各个方面 - 这仍然不起作用 - 所以可能存在问题,方法/特征在最新的iOS中变得过时或者只是做我做的事情错误。但这就是我所在的地方:
青色是CollectionView的背景色。然后有一个粉红色背景的PostCell,上面覆盖着蓝色图像视图,我从网址(顶部的视频缩略图)设置图像,以及包含笔记的粉红色文本视图。
我想要的是让PostCell坚持集合视图的顶部和底部,这样您就再也看不到蓝绿色部分了。
以下是我设置的约束以及视图层次结构:
在我的TagViewController中 - 这个视图的控制器,我有:
class TagViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource {
....
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
//top, left, bottom, right
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
override func viewDidLoad() {
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
collectionView.contentInsetAdjustmentBehavior = .never
}
....
}
insetForSectionAt方法和我在viewDidLoad中设置的方法来自我在stackOverflow上找到的类似问题的答案,例如:UICollectionView adds top margin 和这里: iOS:Setting UICollectionView cell to view size
答案 0 :(得分:1)
您是否尝试过' sizeForItemAt indexPath'方法?
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout:
UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width, height: view.frame.height)
}