如何向 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
您正在尝试对标签施加约束,但您没有该标签的父视图。约束需要一些视图才能发挥作用。
我有一个无法添加约束的标签,因为它位于 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
您正在尝试对标签施加约束,但您没有该标签的父视图。约束需要一些视图才能发挥作用。