另一个集合视图中集合视图单元格的约束
Posted
技术标签:
【中文标题】另一个集合视图中集合视图单元格的约束【英文标题】:constraints of collection view cells inside another collectionview 【发布时间】:2018-12-30 16:11:42 【问题描述】:我已经为 UICollectionView 创建了自定义类。我想将另一个 Collection 视图放入第一个类的单元格中。
import UIKit
class ModeCell: UICollectionViewCell
override init(frame: CGRect)
super.init(frame: frame)
setupView()
let modeCollection : UICollectionView =
let layout = UICollectionViewFlowLayout()
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
collectionView.backgroundColor = .cyan
collectionView.translatesAutoresizingMaskIntoConstraints = false
return collectionView
()
func setupView()
backgroundColor = .red
addSubview(modeCollection)
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:[v0(180)]-20-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-25-[v0(180)]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-30-[v0(160)]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-95-[v0]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": modeCollection]))
required init?(coder aDecoder: NSCoder)
fatalError("init(coder:) has not been implemented")
这段代码工作正常,但我想知道是否可以像我在其他项目中使用它们一样使用约束:
modeCollection.centerXAnchor.constraint(equalTo: .centerXAnchor).isActive = true modeCollection.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true modeCollection.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true modeCollection.heightAnchor.constraint(equalToConstant: 49).isActive = true
问题是我的新自定义类中没有“视图”,我也没有任何可参考的东西......
【问题讨论】:
您可以在 UICollectionViewCell 子类的 layoutSubviews() 中执行 setupViews。 @SWAT 在我的父 UICollectionViewController 类中? 【参考方案1】:您不是为view
创建约束,而是为self
创建约束,这将引用UICollectionViewCell
本身(在您的情况下为ModeCell
)。
【讨论】:
以上是关于另一个集合视图中集合视图单元格的约束的主要内容,如果未能解决你的问题,请参考以下文章
向其子视图(即 UILabel)添加约束时,无法保持集合视图单元格的固定大小