iOS: изменение подвида с помощью сегментированного элемента управления

#objective-c #cocoa-touch #ios #subview #uisegmentedcontrol

#objective-c #cocoa-touch #iOS #подвид #uisegmentedcontrol

Вопрос:

У меня есть четыре подвида, и когда я выбираю (сегмент == 1) в сегментированном элементе управления, другой вид должен иметь альфа-значение 0,00, и только подвиды номер 1 должны иметь альфа-значение 1,00, я показываю свой код:

 if (segmentedContr.selectedSegmentIndex == 1) {

    [subView1 setAlpha:0.0];

      }
  

это просто, но где я должен написать этот код? В IBAction? или в общем методе (void)? Если я сделаю

 -(void)segmentAction:(id)sender
  

где я должен вызвать этот метод?

Комментарии:

1. IBAction преобразуется препроцессором в void .

Ответ №1:

Вам не нужно явно вызывать этот метод откуда бы то ни было.

Этот метод будет вызван автоматически, когда вы выберете сегмент в сегментированном элементе управления. И убедитесь, что вы установили цель и действие для сегментированного элемента управления.

 [segmentedContr addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
  

Комментарии:

1. можете ли вы написать пример свойства делегирования?

2. и где я должен это написать? в viewdidload?

3. возникает ошибка; в нем говорится, что делегат свойства не найден для объекта типа UISegmented Control

4. @blackguardian: Извините. Я допустил ошибку. На самом деле вы не будете устанавливать делегирование для сегментированных элементов управления. Вы должны использовать [segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];

5. @blackguardian: Отлично. Пожалуйста, удалите приведенные выше комментарии, если это возможно.