以编程方式添加时,rightAnchor 约束不适用 - swift
Posted
技术标签:
【中文标题】以编程方式添加时,rightAnchor 约束不适用 - swift【英文标题】:rightAnchor constraint did not apply when added programmatically - swift 【发布时间】:2018-07-18 06:30:04 【问题描述】:当我添加 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)])
有人可以帮我吗?
【问题讨论】:
您可能需要leadingAnchor
和trailingAnchod
而不是左/右,因为它们会自动尊重从右到左的语言环境
【参考方案1】:
我有一种强烈的感觉,那就是你想为rightAnchor
做的事情。
collectionView.rightAnchor.constraint(equalTo: rightAnchor, constant: -20)
如果您想从右侧或底部填充,您应该使用负值。
经验法则:任何东西留下或向上的东西都是负面的。
【讨论】:
【参考方案2】:您正在添加 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)])
【讨论】:
以上是关于以编程方式添加时,rightAnchor 约束不适用 - swift的主要内容,如果未能解决你的问题,请参考以下文章