UISegmentedControl отмените выбор (не выделяйте ни один из сегментов)

StackOverflow https://stackoverflow.com/questions/2206066

Вопрос

на самом деле в названии содержится мой вопрос.У меня есть UISegmentedControl, и мне нужно отменить выбор текущей выбранной вкладки.Я пытался:

[menu setSelectedSegmentIndex:-1];

меню является UBOutlet для uisegmentedcontrol, но это дает мне исключение.у кого-нибудь есть какая-нибудь идея?спасибо питер

Это было полезно?

Решение

Я бы предположил, что вы позвонили [myArray length] вместо надлежащего [myArray count] где-то в вашем коде.NSArray использует метод count, а не length для количества содержащихся в нем элементов.

Другие советы

Правильный способ сделать это -:

[menu setSelectedSegmentIndex:UISegmentedControlNoSegment];

Я предполагаю, что вы пытаетесь создать мгновенный выбор в сегментированном элементе управления.В interface builder установите для segmentedcontrol значение momentary.Или в коде вы можете сделать:

menu.momentary = YES;

Установка segmentedControl в .momentary = YES изменяет способ взаимодействия пользователя с segmentedControl.Если вы хотите, чтобы изначально при загрузке страницы ничего не было выбрано, но чтобы segmentedControl вел себя так же после того, как выбор сделан пользователем, тогда вам понадобится что-то более похожее на это:

Решение Swift 4:

 @IBOutlet weak var segmentedControl: UISegmentedControl!

 self.segmentedControl.selectedSegmentIndex = UISegmentedControlNoSegment

Теперь вы можете сделать это в xcode 6 в interface builder:

Deselect the 'Selected' option under segmented control behaviour in attributes inspector.

Быстрое решение: @IBOutlet weak var mySegmentedControl: UISegmentedControl! и mySegmentedControl.selectedSegmentIndex = -1.

быстрый 4

@IBOutlet weak var segmentControl: UISegmentedControl! {
    didSet {
        segmentControl.selectedSegmentIndex = UISegmentedControl.noSegment
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top