提问者:小点点

以编程方式从集合下面设置约束标签


将约束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,我认为它的方式是错误的。


共1个答案

匿名用户

设置-60才是正确的方法。 Cocoatouch的坐标系有点奇怪,因为它的(0,0)位于设备的左上角,而Cocoa中的坐标是从左下角开始的。 一旦您更多地以编程方式进行自动布局,您就会习惯这一点。

注意:还有,当试图从将子视图约束到超视图时,您需要给出负值。

不同的方法:另一种方法是将超视图限制为子视图,这样更易读和自解释。 将超级视图bottomanchor约束为子视图bottomanchor,填充值为60点。

bottomAnchor.constraint(equalTo: lbl_Title.bottomAnchor, constant: 60).isActive = true