Как создать процент от общей ширины с помощью автозапуска?
Мне нужно создать три динамических столбца, каждый с фиксированным процентом от общей ширины. Не треть, а разные значения. Например, на следующем рисунке показаны три столбца: первый из которых имеет ширину 42%, второй - 25% ширины, а третий - 33%.
Для монитора с разрешением 600 пикселов это будет 252, 150 и 198 пикселей соответственно.
Однако для любых последующих размеров дисплея (например, для iPhone 4 (960 широкоформатный) или для iPad 2 (ширина 768), я хотел бы, чтобы относительные проценты были одинаковыми (а не ширины пикселей, приведенные выше).
Есть ли способ сделать это с помощью раскадровки (т.е. без кода)? Я могу сделать это легко в коде, но моя цель - максимально использовать эту логику отображения в раскадровке.
![enter image description here]()
Ответы
Ответ 1
Если, как вы говорите, вы знаете, как это сделать в коде, то вы уже знаете, как это сделать в раскадровке. Это точно те же ограничения, но вы создаете их визуально, а не в коде.
-
Выберите и представление, и его супервизор.
-
Выберите "Редактор" → "Pin" → "Widths". Чтобы ограничить ширину, равную ширине супервизора (на самом деле здесь лучше всего появляется всплывающее диалоговое окно "pin" внизу холста).
-
Измените ограничение и установите множитель в нужную фракцию, например. 0,42. И так же для других взглядов.
Одна картина стоит тысячи слов, я внедрил предложенный вами макет для раскадровки без использования кода в проекте github, который вы можете скачать и изучить:
https://github.com/mattneub/percentageWidthsInStoryboard
Ответ 2
Я думаю, что это можно объяснить более подробно, поэтому его можно более легко применить к любому количеству представлений, требующих фиксированных процентных макетов внутри супервизора.
Левый вид
- привязано к
SuperView.Leading
- Определяет свой фиксированный процент как множитель на
SuperView.Height
Промежуточные виды
- Определяет свой фиксированный процент как множитель на
SuperView.Height
- Соединяет его
left
со своим соседством.
Вид справа -
- Не определяет фиксированный процент (это остальная часть доступного представления)
- Соединяет его
left
со своим соседством.
- Отключает
right
до SuperView.Trailing
Все представления
- Определите их нефиксированные высоты, привязав их к
Top Layout Guide.Top
и Top Layout Guide.bottom
. В ответе выше отметим, что это также можно сделать, установив равную высоту соседнему виду.