2014-12-01 3 views
9

Можно ли задать ограничение на другой множитель в зависимости от текущего класса размера?Изменение множителя ограничения на основе класса размера

У меня есть представление, что я хочу быть на половину размера экрана для обычной ширины класса размера, и я хочу, чтобы он составлял 80% от размера экрана для ширины класса компактного размера. В раскадровке у меня есть возможность добавлять разные переменные для разных классов размера к постоянному значению ограничений, но не к значению множителя. Это ограничение равных широт в случае, если это имеет значение.

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

ответ

18

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

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

Если кто-нибудь знает какие-либо лучшие решения или знает, почему это делается таким образом, я все равно хотел бы это услышать.

+1

Определенно с вами согласен! Так же, как Apple дала возможность определять разные константы, определенные классом размера при одном и том же ограничении, они должны делать то же самое с мультипликаторами для того же ограничения. –

+0

Вы включили/отключили код или настройки раскадровки? –

+1

@JohnD. Вы можете включать/отключать ограничения через раскадровку, выбирая ограничение, прокручивая снизу на инспекторе и отмечая/снимая коробку. Я уверен, вы также можете сделать это, отредактировав код напрямую, если вам нужно. – Tiddly

0

Я был в состоянии предоставить различные множители для каждого класса размера, выбрав элемент (ограничение которого нужно изменить) -> инспектор размера -> ограничения выберите «Все» вместо «Этот класс размеров» -> Это покажет ограничения как текущего класса размера с ограничениями невыделенного размера, так и серым цветом. Щелкните правой кнопкой мыши нужное ограничение (общие ограничения отображаются в обоих классах размера), вы можете изменить значения множителя для ограничений класса размера.

+0

Я не вижу поведения, которое вы описываете. Если у меня есть одно ограничение с различными вариантами класса размера, и я следую вашим инструкциям и нажимаю «редактировать» или дважды щелкаю по нему (щелчок правой кнопкой ничего не делает), он возвращает меня в представление редактирования для этого где нет возможности изменить множитель на основе класса размера. Я использую Xcode 9.2. –

Смежные вопросы