Вертикальные и горизонтальные макеты в капучино

Во Flex есть такие вещи, как HGroup и VGroup. Они позволяют выравнивать содержимое по горизонтали и вертикали с некоторым заданным зазором между элементами.

Есть ли что-то похожее в капучино? Я нигде не могу найти никакой информации о макетах в Капучино (кроме автоматического макета, который мне не нужен).

2 ответа

Решение

Как сказал Primalmotion, для этого нет встроенного класса. Однако создать собственный вид контейнера не сложно: https://gist.github.com/3630322

Я оставлю горизонтальный вид в качестве упражнения для вас.

Объясняя это чуть-чуть:

В конце цикла запуска Cappuccino каждое представление выполняет две вещи: "подвиды макета" и "перерисовывает" себя. В основном, когда происходит изменение представления (например, добавляется новое подпредставление), представления устанавливают флаг, говорящий о том, что ему необходимо обновить содержимое на экране. Мы можем фактически контролировать, как происходит это расположение, переопределяя вызываемый метод:

- (void)layoutSubviews;

Это чрезвычайно мощно и очень эффективно, потому что это означает, что представление "визуализируется" только один раз во время цикла выполнения.

РЕДАКТИРОВАТЬ: я должен отметить, что код не был проверен вообще. Я считаю, что это должно работать, если нет какой-то странной опечатки:)

В Капучино такого нет. Но вы можете сделать то же самое с масками автоматического изменения размера. Чего нельзя добиться с помощью автоматического макета?

Другие вопросы по тегам