我尝试使用以下方法之一创建UICollectionView
:
// method 1
collectionView = UICollectionView(frame: CGRectMake(0, 0, 500, 3000), collectionViewLayout: layout)
// method2
collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
// method 3
collectionView = UICollectionView()
然后为它设置自动布局约束,如下所示:
mainView.addSubView(collectionView)
collectionView.translatesAutoresizingMaskIntoConstraints = false
collectionView.leadingAnchor.constraintEqualToAnchor(mainView.leadingAnchor).active = true
collectionView.trailingAnchor.constraintEqualToAnchor(mainView.trailingAnchor).active = true
collectionView.topAnchor.constraintEqualToAnchor(mainView.topAnchor, constant: 50).active = true
collectionView.heightAnchor.constraintEqualToConstant(300).active = true
使用方法1,UICollectionView
仍然按照初始帧设置(0,0,500,3000)显示
使用方法2,UICollectionView
不会显示。
使用方法3,它会崩溃,理由是:“必须使用非零布局参数初始化UICollectionView”
为此UiCollectionView
设置自动布局约束的正确方法是什么?