将CollectionView设置为横幅

时间:2019-05-10 08:46:57

标签: swift uicollectionview autolayout constraints

我必须在我的视图控制器中收集视图。一种是显示图像,另一种是显示票证详细信息。这是示例图片。

但是我不能设置适当的约束。这就是我对代码的处理。

 let numberOfCells = 9
    let kCellHeight : CGFloat = 104
    let kLineSpacing : CGFloat = 2
    let kInset : CGFloat = 10

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        if collectionView == clnView {
            return CGSize.init(width: width, height: height)
        }else {
            return CGSize(width: (UIScreen.main.bounds.width - 2*kInset - kLineSpacing), height: kCellHeight)
        }
    }
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        var size = CGFloat()
        if collectionView == clnView {
            size = kLineSpacing
        }
        return size
    }
 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        var Insect = UIEdgeInsets()
        if collectionView == clnView {
            Insect = UIEdgeInsets(top: kInset, left: kInset, bottom: kInset, right: kInset)
        }
        return Insect
    }

但是显示不正确。看

  

iphone 5s

  

iPhone XR

请说明正确的方法。谢谢

1 个答案:

答案 0 :(得分:0)

您的代码仅定义项目如何在集合视图内布置。

约束应告诉您集合视图在父视图中的何处放置,以及宽度+高度。

您必须learn autolayout并在情节提要或xib中逐步进行操作。在适当的Y约束下,它应能按预期工作。如果要将collectionview +其他内容放入scrollview中,请遵循this answer