当以编程方式添加时,rightAnchor约束不适用 - 快速

问题描述 投票:1回答:2

当我添加rightAnchor约束时,constant = 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)])
}

有人能帮我吗?

ios swift constraints ios-autolayout
2个回答
1
投票

我有一种非常强烈的感觉,这就是你想为rightAnchor做的事情。

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

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


经验法则:无论是左边还是右边的东西都是消极的。


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)])
© www.soinside.com 2019 - 2024. All rights reserved.