Менеджер по расположению, или есть лучшее решение?

У меня есть табличное представление, где ячейки могут отображать переменное количество информации. Например, первая ячейка может отображать 2 метки, следующая ячейка - 5 меток, а третья ячейка может отображать 1 метку. Содержимое ячейки хранится в управляемых объектах.

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

Есть ли лучший способ сделать это с UIKit? Я понимаю, что в конечном итоге я мог бы использовать Core Text для визуализации текста, но я хотел бы, чтобы это было деталью реализации. Для начала я был бы счастлив, если бы у меня были UILabels, которые были бы динамически настроены.

РЕДАКТИРОВАТЬ:

Одним из побочных эффектов создания этого файла конфигурации является то, что я могу обновить эти конфигурации после развертывания приложения. Я мог бы также рассмотреть сгенерированные xib-файлы для загрузки, но в идеале я хотел бы только доставлять двоичные списки.

1 ответ

Решение

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

Говоря о более разносторонней идее "менеджера компоновки", рассмотрим, что система NIB/XIB фактически является механизмом компоновки, управляемой данными. Если вы думаете о чем-то достаточно универсальном, чтобы указать явные макеты и свойства представлений, подумайте, что это в основном XIB-файлы - схематизированная XML-компоновка. Смотрите инструмент командной строки ibtool Документация (страница руководства), чтобы узнать больше о том, как вы можете манипулировать ими.

Если ваши требования к макету достаточно специфичны для вашего приложения, но слишком общие, чтобы справиться с набором фиксированных XIB, то рассмотрите легкий менеджер, который вы описали. Но я бы подумал, прежде чем уйти и создать что-то супер-общее. Эквивалент закона Завински в том, что любой менеджер компоновки в конечном итоге будет включать все больше и больше функциональности XIB.

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