В своем вопросе вы точно говорите о том, сколько точек должна быть каждая из кнопок, но вы не описали, как вы хотите, чтобы она вел себя, когда устройство было недостаточно высоким для этого представления (например, на iPhone 4s).
В итоге, в дополнение к стандартным ограничениям начального/конечного/верхнего/нижнего, я мог бы предложить вам рассмотреть возможность определения высоты различных меток/кнопок относительно друг друга. Например, рассмотрим следующие ограничения:
NSLayoutConstraint.activateConstraints([
// leading constraints
pinkLabel.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 8),
button1.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 8),
button2.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 8),
button3.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 8),
button4.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 8),
// trailing constraints
view.trailingAnchor.constraintEqualToAnchor(pinkLabel.trailingAnchor, constant: 8),
view.trailingAnchor.constraintEqualToAnchor(button1.trailingAnchor, constant: 8),
view.trailingAnchor.constraintEqualToAnchor(button2.trailingAnchor, constant: 8),
view.trailingAnchor.constraintEqualToAnchor(button3.trailingAnchor, constant: 8),
view.trailingAnchor.constraintEqualToAnchor(button4.trailingAnchor, constant: 8),
// vertical spacing constraints
pinkLabel.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 20),
button1.topAnchor.constraintEqualToAnchor(pinkLabel.bottomAnchor, constant: 8),
button2.topAnchor.constraintEqualToAnchor(button1.bottomAnchor, constant: 8),
button3.topAnchor.constraintEqualToAnchor(button2.bottomAnchor, constant: 8),
button4.topAnchor.constraintEqualToAnchor(button3.bottomAnchor, constant: 8),
view.bottomAnchor.constraintEqualToAnchor(button4.bottomAnchor, constant: 83),
// now set relative height
pinkLabel.heightAnchor.constraintEqualToAnchor(button1.heightAnchor, multiplier: 1.5),
button2.heightAnchor.constraintEqualToAnchor(button1.heightAnchor),
button3.heightAnchor.constraintEqualToAnchor(button1.heightAnchor),
button4.heightAnchor.constraintEqualToAnchor(button1.heightAnchor)
])
(Кстати, я показываю это программно, потому что это самый простой способ однозначно сформулировать все ограничения, но вы можете настроить их в IB или реализовать и в Objective-C. Реализуйте как хотите, но это примеры. ограничения.)
Это приведет к тому, что на трех разных устройствах:
![введите здесь описание изображения](https://i.stack.imgur.com/zvAVI.png)
Ясно, что вы можете изменить эти ограничения на что угодно, но это иллюстрирует один из подходов. Суть в том, что просто добавьте стандартные начальные/конечные/верхние/нижние ограничения, а затем определите высоту различных меток/кнопок относительно друг друга.
В своем вопросе вы показываете нам, как вы не хотели, чтобы это выглядело на меньшем экране, но никогда не сформулировали, как оно должно выглядеть. Если вы уточните, как вы хотите, чтобы он отображался на экранах разного размера, мы, вероятно, сможем помочь дальше.
person
Rob
schedule
09.03.2016