Меньше места на Top Anchor UIImageView на iOS 10 - PullRequest
0 голосов
/ 02 октября 2018

У меня есть UIImageView в верхней части экрана, который имеет равную ширину и высоту.Я добавляю все программно, поэтому у меня нет раскадровки.Я даю ширину, высоту, верхний якорь UIImageView и центрирую его на супервизор X якоряВерхняя привязка имеет постоянное значение 10.

Моя проблема заключается в том, что на устройствах iOS 11 и более поздних версиях пространство между вершиной superview и 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 голосов
/ 02 октября 2018

Когда я добавляю верхнее ограничение с практикой ниже, проблема решается.

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