Любое обходное решение, чтобы иметь разные ограничения для одного класса размера?

Скажем, мне нужно иметь представление с начальным и конечным интервалами, на iPhone SE интервалы должны быть 16, на больших телефонах я могу иметь 32 интервала, однако в портретном режиме класс горизонтального размера всегда Компактный, что означает, что я могу ' t применять разные интервалы для разных классов размеров.

Затем я подумал об ограничениях High приоритета вместо Required и сделать внутренний размер содержимого представления равным, скажем, 288, поэтому на iPhone SE интервалы быть 16 и 16 (т.е. 16 + 288 + 16 = 32), но на больших телефонах может быть 32. Не пробовал, но может ли кто-нибудь указать мне правильное направление решения этой проблемы?

Спасибо!

Изменить: представление на самом деле является UILabel, и я не хочу давать ему жестко запрограммированное ограничение ширины.


person hzxu    schedule 14.09.2017    source источник
comment
В таких случаях вам нужно установить временную высоту и ширину (например, высоту и ширину, когда вы применяете интерлиньяж и пробу), а затем вы должны указать соотношение сторон. на ваш взгляд, поэтому он будет увеличиваться и уменьшаться в размере в соответствии с вашим супервидом. Пожалуйста, проверьте это, пожалуйста, проверьте это, stackoverflow.com/a/36702170/4910767.. Более того, еще один, но утомительный способ: вам нужно взять IBOutlet ведущего и пробного ограничения и проверить условие, если это iphone 5s или 6s или т. д., и обновить константу ограничения в соответствии с вашими требованиями.   -  person Badal Shah    schedule 14.09.2017


Ответы (1)


Я решаю эти проблемы в более широком смысле, используя множитель ограничения. Это может быть не совсем 16/32, но вы можете получить аналогичный эффект.

Вы можете установить жесткие ограничения, такие как требуемое минимум 16, требуемое максимальное значение 32, а затем установить другое ограничение с более низким приоритетом родительской ширины * someMultiplier

person trapper    schedule 14.09.2017