Как применить множитель на ограничение маржи через xcodee? - PullRequest
0 голосов
/ 23 июня 2019

Ограничения

enter image description here

Иерархия макетов

enter image description here

Оранжевая картаверхнее поле

enter image description here

Описание

Я хочу, чтобы половина порции оранжевого поля (вид изнутри прокрутки) всегда была сверху green color изображение.Поэтому я применил свойство множителя к top constraint из orange box

Учитывая iPhone 4

460/123 = Высота прокрутки (460) / (167 - 44) (Высота оранжевого поля -верхнее поле коробки в iphone 4)

Я хочу присвоить множителю на верхнем поле оранжевого поля его суперпредставление, т.е. scrollView, чтобы динамически настраиваться на разных экранах с одинаковым соотношением.

То, чего я достиг, это: enter image description here

Что я здесь не так делаю и как мне подойти к макету через xcode?

Этоне динамический.Как я могу добиться этого макета?или как добавить множитель на вертикальное ограничение через xcode?

1 Ответ

0 голосов
/ 24 июня 2019

NSLayoutConstraint s multiplier является get-only свойством.Поэтому вам нужно будет каждый раз создавать новый экземпляр для другого множителя и деактивировать старое ограничение, а затем активировать новое ограничение, если вы хотите настроить множитель.

Что я рекомендую вместо этого корректирует constant ограничения , вместо этого вам не нужно создавать новые экземпляры ограничений.

@IBOutlet weak var topMarginConstraint: NSLayoutConstraint!

override public func viewDidLoad() {
    if iphone4 {
        topMarginConstraint.constant = scrollView.frame.height / (orangeBoxView.height - iphone4TopMargin)
    } else if iphonex {
        topMarginConstraint.constant = scrollView.frame.height / (orangeBoxView.height - iphonexTopMargin)
    } else {
        // Implementations for other phones / screens...
    }
    view.setNeedsLayout()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...