Подкласс UItableViewCell с несколькими легендами и метками

Я знаю, что этот вопрос часто задавался сотнями разных способов (и это только на этом сайте). Но я изо всех сил пытаюсь собрать все части воедино.

Я бы хотел каждый UITableViewCell выглядеть так:

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

Я пытался сделать это с помощью Interface Builder но на самом деле не понимаю авторазмера. Хотя я счастлив сделать это в коде.

Кто-нибудь знает, как это сделать или, по крайней мере, есть хорошие ссылки на учебники, исходный код и т. Д.?

2 ответа

Решение

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

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

При этом, если вы настаиваете на том, чтобы положить все свои яйца в эту корзину, то я думаю, что вам нужно будет реализовать ячейку табличного представления в IB, записать детали для всех измерений фрейма метки контента, а затем во время выполнения использовать один из NSString sizeWithFont:constrainedToSize: методы, чтобы определить, насколько большими будут ваши ярлыки. Сделай их такими большими. Затем из этих данных вычислите высоту вашей ячейки и верните это значение из табличного представления. tableView:heightForRowAtIndexPath:, Вот как я реализовал эту функциональность в приложении несколько лет назад. (Честно говоря, я не уверен, что это все еще работает.) Может быть, есть некоторые лучшие методы для определения размера этикетки в CoreText, я не смотрел.

Лучше было бы ограничить себя длиной текста, который вы можете поместить в каждый ярлык. Тогда вы можете просто определить метки статически и использовать ячейку постоянного размера. Собрать все вместе в IB не сложно. Просто выложите все и убедитесь, что вы создаете соединение IBOutlet и XCode/IB для каждого объекта, которым вы хотите манипулировать в коде.

Удачи!

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

Из этого туториала вы узнаете, как его настроить.

http://iosstuff.wordpress.com/2011/06/29/adding-a-uitableview-inside-a-uitableviewcell/

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