将约束LBL_TITLE
从底部设置为CollectionView
当设置为底部60时,它的标签位于集合视图的下方,设置为-60后,将其调整到位置。
如何根据集合设置约束。
func setCollectionViewConstraints() -> Void {
collectionView.translatesAutoresizingMaskIntoConstraints = false
collectionView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 10).isActive = true
collectionView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 0).isActive = true
collectionView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: 0).isActive = true
collectionView.heightAnchor.constraint(greaterThanOrEqualToConstant: 60).isActive = true
}
func setRecentJobLabelConstraints() -> Void {
lbl_Title.translatesAutoresizingMaskIntoConstraints = false
lbl_Title.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -60).isActive = true
lbl_Title.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20).isActive = true
lbl_Title.heightAnchor.constraint(greaterThanOrEqualToConstant: 20).isActive = true
}
这里的问题修正了如果设置constrain为-60
,我认为它的方式是错误的。
设置-60
才是正确的方法。 Cocoatouch
的坐标系有点奇怪,因为它的(0,0)
位于设备的左上角
,而Cocoa
中的坐标是从左下角
开始的。 一旦您更多地以编程方式进行自动布局,您就会习惯这一点。
注意:还有,当试图从右
将子视图约束到超视图时,您需要给出负值。
不同的方法:另一种方法是将超视图限制为子视图,这样更易读和自解释。 将超级视图
的bottomanchor
约束为子视图
的bottomanchor
,填充值为60点。
bottomAnchor.constraint(equalTo: lbl_Title.bottomAnchor, constant: 60).isActive = true