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