Я пытаюсь создать UIViewController с двумя кнопками, расположенными вертикально в нижней части UIView (как на листе действий iOS на iPod). По какой-то причине верхний якорь моей верхней кнопки постоянно привязан к вершине UIViewController.
У меня есть нижняя кнопка для перемещения в нужное место в нижней части контроллера. Я добился этого, установив верхнюю привязку второй кнопки следующим образом:
NSLayoutConstraint.ActivateConstraints(new[] { this.secondButton.TopAnchor.ConstraintEqualTo(this.View.SafeAreaLayoutGuide.BottomAnchor, -(this.secondButton.Frame.Height + 30f)) });
this.secondButton.UpdateConstraints();
Я пытался сделать что-то похожее и для первой кнопки. Я прошел через 2 случая, когда верхняя кнопка застряла на якоре the top.
Установить верхний якорь с таким же типом логики c, как и для второй кнопки
NSLayoutConstraint.ActivateConstraints(new[] {
this.firstButton.HeightAnchor.ConstraintEqualTo(this.firstButton.Frame.Height),
this.firstButton.TopAnchor.ConstraintEqualTo(this.View.SafeAreaLayoutGuide.BottomAnchor, -(2 * this.secondButton.Frame.Height + 60f)) });
this.firstButton.UpdateConstraints();
Результат:
Застрял верхний якорь 1
Установите нижнюю привязку для второй кнопки, переключив верхнюю линию привязки выше на эту
this.firstButton.BottomAnchor.ConstraintEqualTo(this.buttonTwo.TopAnchor, -30f)
Результат: Верхняя привязка застряла 2
Независимо от того, как я установил привязку высоты и верхнюю / нижнюю привязки для кнопки один, она не прекратит привязку к самой верхней части контроллера вида. Я удостоверился, что TranslatesAutoresizingMaskIntoConstraints был установлен в false для обеих кнопок, и я проверил, что не было никаких предыдущих ограничений на две кнопки. Любое понимание? Спасибо!