2016-01-12 4 views
3

Возможно ли использовать предопределенные постоянные значения в Interface Builder?Интерфейс Builder с предопределенными постоянными значениями

например. Если я определяю MyConstantWidth = 10; в файле заголовка, могу ли я использовать его в IB? Я ожидаю, что это не сработает, но, возможно, у кого-то есть умное решение.

+0

Создайте розетку и в своем .m, установите ее на эту константу с .h –

+0

. Я стараюсь, если возможно, избегать розетки и хранить все в IB. – Alan

+0

В этом случае один голос для вашего вопроса ... Я не знаю, возможно ли это или нет. –

ответ

0

Насколько я знаю, Interface Builder - это билет в один конец.

Вы можете подавать только .m информацию (через атрибуты времени выполнения), и вы не можете использовать информацию из своего .m/.h для подачи IB.

0

Концептуально, размещение значений в вашем коде для использования в IB идет вразрез с идеей разделения визуальных образов от кодированной логики.

Я действительно признаю, что использование значений «named» внутри IB было бы полезно для обеспечения согласованности и облегчения обновлений. Цвета - это мой личный питомец на этом фронте.

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

Вы также можете использовать скрытые элементы управления или ограничения с низким приоритетом, чтобы выразить произвольное значение, которое вы сопоставляете с помощью розетки. Я иногда использую это, чтобы переключаться между значениями ограничений, создавая два дополнительных ограничения с низким приоритетом и копируя их значение .constant с приоритетным приоритетом, когда это необходимо. Это сохраняет все значения в IB и близко друг к другу (и, что более важно, из кода).

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