#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: Отлично. Пожалуйста, удалите приведенные выше комментарии, если это возможно.