Копировать UISegmentedControl с помощью кнопок UIB - iPhone - PullRequest
1 голос
/ 22 апреля 2010

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

Теперь я смотрю, как повторить эту функцию с 4 кнопками UIB.

Я установил 4 кнопки UIB в конструкторе интерфейса, добавил к ним разные номера тегов.

Чего я не могу сделать, так это когда нажата кнопка, она должна быть «выбрана», а остальные кнопки не выбраны.

Как я могу подключить их все?

И если бы был способ изменить внешний вид элемента управления UISegmented, мне потребовались бы все эти усилия.

спасибо за помощьребята

это для iPhone OS

1 Ответ

3 голосов
/ 22 апреля 2010

Используя 4 кнопки, не так уж сложно отключить все остальные. Вот некоторый код для начала:

- (void)buttonPressed:(NSInteger)activeButtonIndex {
    for (int i = 0; i < [buttons count]; i++) {
        MYButton *button = [buttons objectAtIndex:i];
        if (i == activeButtonIndex) {
            [button setDepressed:YES];
        } else {
            [button setDepressed:NO];
        }
    }
}
- (void)button1Pressed:(id)sender { [self buttonPressed:1]; }
- (void)button2Pressed:(id)sender { [self buttonPressed:2]; }
- (void)button3Pressed:(id)sender { [self buttonPressed:3]; }
- (void)button4Pressed:(id)sender { [self buttonPressed:4]; }

Важные настройки, чтобы отметить здесь:

  1. Вам нужно будет создать подкласс для вашего uibutton, чтобы он имел состояние depressed. Таким образом, если элемент выбран, вы просто меняете изображение или фон кнопки, чтобы она выглядела нажатой.
  2. buttons - массив, заполненный этим подклассовым объектом uibutton. Вы бы настроили его в viewDidLoad;
...