【问题标题】:Less space on Top Anchor of UIImageView on iOS 10iOS 10 上 UIImageView 的 Top Anchor 空间更小
【发布时间】:2019-03-07 06:03:57
【问题描述】:

我在屏幕顶部有一个UIImageView,它的宽度和高度相等。我正在以编程方式添加所有内容,所以我没有故事板。我将宽度、高度、顶部锚点分配给UIImageView 并将其居中到 superviews X 锚点。顶部锚点的常数值为 10。

我的问题是,在 iOS 11 及更高版本的设备上,superview 顶部和UIImageView 之间的空间还可以,但在 iOS 10 及之前的设备上,空间较小。我认为这与超级视图布局边距有关。

总结:我给出的常数并不重要,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()

应该如何:

一个错误:

【问题讨论】:

    标签: ios swift uiview uiimageview autolayout


    【解决方案1】:

    当我通过以下练习添加顶部约束时,问题解决了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多