我在屏幕顶部有一个UIImageView
,其宽度和高度均相等。我以编程方式添加了所有内容,因此没有情节提要。我给UIImageView
设置宽度,高度,顶部锚点并将其居中到Superviews X锚点。顶部锚点的常数为10。
我的问题是,在iOS 11及更高版本的设备上,超级视图顶部和UIImageView
之间的空间还可以,但是在iOS 10及更低版本的设备上,空间较小。我认为与Superview布局边距有关。
摘要:我给出的常量并不重要,iOS 11和更高版本的设备上总是有更多空间。
我如何声明:
let logo = UIImageView()
let logoImage = UIImage(named: "logo")
logo.image = logoImage
logo.contentMode = .scaleAspectFit
logo.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(logo)
logo.heightAnchor.constraint(equalToConstant: 31).isActive = true
logo.widthAnchor.constraint(equalToConstant: 180).isActive = true
logo.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 10).isActive = true
logo.anchorCenterXToSuperview()
错误的一个:
答案 0 :(得分:0)
当我通过以下练习添加最高约束时,问题就解决了。
let topConstraint = NSLayoutConstraint(item: logo,
attribute: .top,
relatedBy: .greaterThanOrEqual,
toItem: self.topLayoutGuide,
attribute: .bottom,
multiplier: 1,
constant: 20)
//topConstraint.priority = UILayoutPriority(rawValue: 1000)
NSLayoutConstraint.activate([topConstraint])