iOS Создание списка тегов - PullRequest
       3

iOS Создание списка тегов

1 голос
/ 24 февраля 2012

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

Другим примером являются встроенные метки здесь .

Я просто не совсем уверен, как это реализовать. Моим первым предположением было бы создать массив UILabels ... Есть предложения?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Выясните, как вы хотите, чтобы теги выглядели.Если вы можете добиться такого внешнего вида с помощью существующих компонентов, таких как ярлыки или токены, то проблема велика.Если нет, то создание собственного подкласса UIView, который рисует фон и немного текста, довольно просто - вам не нужно было бы писать гораздо больше кода, чем пользовательский метод -drawRect:, и даже это должно быть легко.Например, если вам нужно что-то похожее на встроенные метки Twitter-ish, вы можете начать с изображения с изменяемым размером, а затем нарисовать текст поверх.

Не бойтесь создавать свои собственные классы представления... это весело!

2 голосов
/ 24 февраля 2012

Возможно, вам нужно написать два класса.

Первый (назовем его HorizontalLayoutView) расширит UIView. Он будет служить контейнером для хранения всех тегов. Это переопределит метод layoutSubviews, чтобы упорядочить подпредставления, установив их кадры. Создайте один экземпляр этого и добавьте его в качестве подпредставления к существующему представлению.

Другой (назовем это TagView) также расширит UIView или, возможно, UILabel. Экземпляры этого класса будут представлять каждый тег. Создайте один экземпляр для каждого тега и добавьте его в качестве подпредставления в ваш экземпляр horizontalLayoutView. В методе initWithFrame: вы должны настроить тег так, как вам нужно. Вы также можете переопределить метод drawRect: для дальнейшей настройки его внешнего вида.

Если вы добавляете теги динамически после того, как представление уже отображается, вам может потребоваться вызвать setNeedsLayout в экземпляре horizontalLayoutView, чтобы настроить его правильно.

Надеюсь, это поможет вам начать в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...