iOS 10上UIImageView的顶部锚点上的空间更少

时间:2018-10-02 06:03:20

标签: ios swift uiview uiimageview autolayout

我在屏幕顶部有一个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()

应该如何: right one

错误的一个:

wrong one

1 个答案:

答案 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])