如何向 UICollectionView header 中的标签添加约束?

How do you add constraints to a label in a UICollectionView header?

我有一个无法添加约束的标签,因为它位于 Collection 可重用视图中,没有 viewDidLoad 方法。是否可以限制 header 使其始终距离左侧 15 像素?

我尝试正常添加约束,但由于某种原因,可重用视图再次没有视图。我看过的其他解决方案都使用了各种视图。

 override func layoutSubviews() {
        super.layoutSubviews()
        headerTitle.translatesAutoresizingMaskIntoConstraints = false
        
        headerTitle.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 15).isActive = true
        headerTitle.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        headerTitle.topAnchor.constraint(equalTo: view.topAnchor, constant: 40).isActive = true
        headerTitle.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        
        headerTitle.frame = bounds
    }

此代码抛出错误 Cannot find 'view' in scope,我假设这是一个可重用视图,而不是一个不存在的视图。这是我的其余代码:

class HeaderCollectionReusableView: UICollectionReusableView {
    static let identifier = "homeheader"
    
    private let headerTitle = UILabel()
    private let newDataSet = UIButton()
    
    override init(frame: CGRect) {
        super.init(frame:frame)
        
        headerTitle.text = "AppTitle"
        headerTitle.font = UIFont.systemFont(ofSize: 32.0, weight: .bold)
        headerTitle.textAlignment = .left
        headerTitle.numberOfLines = 0
        
        addSubview(headerTitle)
    }
    
    required init?(coder: NSCoder) {
        fatalError()
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        headerTitle.frame = bounds //<-- want to replace this line with the constraints
    }
}

我希望该解决方案也适用于按钮。这是我想要的输出: desired output from constraints

您正在尝试对标签施加约束,但您没有该标签的父视图。约束需要一些视图才能发挥作用。