Динамическое перечисление IBInspectable в iOS

Я пишу пользовательский элемент управления с сегментами (например, UISegmentControl), я должен использовать параметры IBInspectable.

У меня есть количество элементов управления

@property IBInspectable int numberOfSegments;

А вот как я рисую эти сегменты:

-(void) drawForAmountOfSegments {
    float segmentWidth = self.frame.size.width / numberOfSegments;
    float segmentHeight = self.frame.size.height;
    for (int i = 0; i < numberOfSegments; i++) {

       CGRect sgRect = CGRectMake(segmentWidth * i, 0, segmentWidth, segmentHeight);
       UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
       [button addTarget:self
                  action:@selector(segmentSelected:)
        forControlEvents:UIControlEventTouchUpInside];
       button.tag = i;
       button.frame = sgRect;
       button.backgroundColor = custom;
       [self addSubview: button];
    }
}

Теперь я хочу установить названия для этих кнопок (сегментов) И я хочу выбрать управление редактированием из IB, как в segmentControl.

введите здесь описание изображения

Как я понимаю, мне нужен массив всех сегментов, и, выбрав один из них, отредактировать его заголовок. Но я не могу установить NSArray как IBInspectable Любые предложения, как решить эту проблему?

* Изменить *

Например, мне нужно выбрать из перечисления сегментов один сегмент и установить его параметры. Выберите первый сегмент -> установите его заголовок (я не понимаю, как это реализовать с помощью IBInspectable)

введите здесь описание изображения


person Arthur    schedule 17.06.2016    source источник


Ответы (1)


Вы можете использовать User Defined Runtime Attributes из Identity Inspector. Все проверяемые атрибуты фактически добавляют туда значения.

person Cy-4AH    schedule 17.06.2016
comment
Да, я знаю. Но как я могу выбрать один сегмент? - person Arthur; 17.06.2016
comment
@Arthur, вы можете добавить специальное строковое свойство, которое генерирует заголовки. Вы можете использовать там, разделенные строкой , или другим форматом ввода, например, json. - person Cy-4AH; 17.06.2016
comment
@Артур, это невозможно. По крайней мере на данный момент. - person Cy-4AH; 17.06.2016
comment
Хорошо, я понял. Благодарю вас! - person Arthur; 18.06.2016