以编程方式添加时rightAnchor约束不适用-Swift

时间:2018-07-18 06:30:04

标签: ios swift constraints ios-autolayout

当我添加rightAnchor约束时,常量= 20不适用。在leftAnchor中可以

override init(frame: CGRect) {
    super.init(frame: frame)

    addSubview(collectionView)
    collectionView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([collectionView.leftAnchor.constraint(equalTo: leftAnchor, constant: 20),
                                 collectionView.topAnchor.constraint(equalTo: self.topAnchor),
                                 collectionView.rightAnchor.constraint(equalTo: rightAnchor, constant: 20),
                                 collectionView.heightAnchor.constraint(equalTo: self.heightAnchor)])
}

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

我真的很强烈,这就是您想在rightAnchor那里做的事情。

collectionView.rightAnchor.constraint(equalTo: rightAnchor, constant: -20)

如果要从右侧或底部填充,则应使用负值。


经验法则:剩下的东西都是负面的。

答案 1 :(得分:0)

您要添加20 + rightAnchor的超级视图。应该是-20

addSubview(collectionView)
collectionView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([collectionView.leftAnchor.constraint(equalTo: leftAnchor, constant: 20),
                             collectionView.topAnchor.constraint(equalTo: self.topAnchor),
                             collectionView.rightAnchor.constraint(equalTo: rightAnchor, constant: -20),
                             collectionView.heightAnchor.constraint(equalTo: self.heightAnchor)])