Определите событие щелчка для UISegmentedControl

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

62
задан Josh Caswell 31 December 2015 в 18:39
поделиться

3 ответа

Если я правильно понимаю ваш вопрос, вам просто нужно реализовать метод целевого действия (поддерживаемый UIControl , который является родительским классом UISegmentedControl ) для константы UIControlEventValueChanged , точно так же, как в примере, приведенном в справочной документации UISegmentControl .

т.е.

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

используется для сообщения со следующей подписью:

- (void)action:(id)sender

или

[segmentedControl addTarget:self
                     action:@selector(action:forEvent:)
           forControlEvents:UIControlEventValueChanged];

для

- (void)action:(id)sender forEvent:(UIEvent *)event

или

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

для простейшего метода:

- (void)action

, которые являются стандартными типами селекторов целевого действия, используемых в UIKit.

129
ответ дан 24 November 2019 в 16:30
поделиться

Попробуйте этот,

    UISegmentedControl  * travelModeSegment = [[UISegmentedControl alloc] initWithItems:
    [NSArray arrayWithObjects:NSLocalizedString(@"Driving", nil),                 NSLocalizedString(@"Walking", nil), nil]];
    [travelModeSegment setFrame:CGRectMake(9.0f, 0.0f, 302.0f, 45.0f)];
    [cell addSubview:travelModeSegment];
    [travelModeSegment release];

потом напишите действие,

     if (travelModeSegment.selectedSegmentIndex == 0) {
        //write here your action when first item selected
    } else {
        //write here your action when second item selected
    }

надеюсь это вам поможет

9
ответ дан 24 November 2019 в 16:30
поделиться

Вы можете прикрепить обработчик в IB к событию изменения значения: UIControlEventValueChanged

или сделать это в коде:

[segmentedControl addTarget:self
                     action:@selector(action:)
           forControlEvents:UIControlEventValueChanged];
2
ответ дан 24 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: