如何将UICollectionView单元格与UICollectionView边界对齐

时间:2018-06-05 00:14:52

标签: ios swift uicollectionview uicollectionviewcell

这已被问过几次了,我试图在我的代码中包含所有答案的各个方面 - 这仍然不起作用 - 所以可能存在问题,方法/特征在最新的iOS中变得过时或者只是做我做的事情错误。但这就是我所在的地方:

enter image description here

青色是CollectionView的背景色。然后有一个粉红色背景的PostCell,上面覆盖着蓝色图像视图,我从网址(顶部的视频缩略图)设置图像,以及包含笔记的粉红色文本视图。

我想要的是让PostCell坚持集合视图的顶部和底部,这样您就再也看不到蓝绿色部分了。

以下是我设置的约束以及视图层次结构:

enter image description here

在我的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

1 个答案:

答案 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)
}