Реализация кнопки iPhone для переключения

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

Я рассматриваю два варианта.

Я мог бы подклассифицировать UIButton. Таким образом, мне не нужно реализовывать сенсорную обработку. Я мог бы просто создать метод, который возвращает логическое значение, указывающее, находится ли кнопка в состоянии включения или выключения.

Я мог бы также начать с подкласса UIView и создать его с нуля. Я предполагаю, что было бы проще делать что-то вроде анимации перехода, но мне пришлось бы создать собственную обработку касания.

Как вы думаете, лучший? Или вы знаете лучший способ? (Возможно, в Интернете есть доступ с открытым исходным кодом/бесплатным?)

EDIT: Я не хочу использовать UISwitch, потому что хочу, чтобы моя кнопка переключения выглядела так. Я хочу, чтобы это была большая прямоугольная кнопка и сделайте фоновое изменение, чтобы указать состояние.

Спасибо!

Ответы

Ответ 1

Вы можете использовать UIButton и установить его свойство enabled.

В Interface Builder вы можете установить отдельные изображения для разрешенных и отключенных состояний, а IBAction изменить свойство.

Ответ 2

-(IBAction)toggle{
    if (button.selected == NO) {
        button.selected = YES;

    }
    else {
        button.selected = NO;
    }
}

или

-(IBAction)toggle:(UIButton*)sender
{
sender.selected = !sender.selected;
}

простой чувак

Ответ 3

Просто создайте метод (IBAction), а также BOOL. Установите для BOOL по умолчанию значение FALSE. Ваш IBAction должен выглядеть следующим образом:

- (IBAction) .... {

    if (bool) {
        // do your things
    }

    else {
        // do your things
    }

    bool =! bool
}

Это работает для меня!

Ответ 4

Нет ли кнопки переключения, или я здесь что-то не хватает?

EDIT: Как говорили другие, он называется UISwitch, и он переключается и выключается.

Ответ 5

Может быть, я не понимаю вопрос правильно. Почему вы не используете UISwitch

Ответ 6

Я тоже посмотрел на UISwitch, но в моем случае я не хочу кнопку включения/выключения, мне очень нужна кнопка переключения. То, что я пытаюсь сделать, снова в моем случае, имеет блок кнопок, которые выглядят как UISegmentedControl, но где пользователь может "переключать" более одной из кнопок на элементе управления за один раз. Проблема, которую я пытаюсь решить, заключается в том, что у меня ОЧЕНЬ ограниченная экранная реальность и много переключателей, чтобы попасть на экран.

Мой спад, вероятно, будет UITableView, полным переключающих ячеек. Таким образом, я могу добавить столько переключателей, сколько хочу, в фиксированной прокручиваемой области экрана.

К сожалению, UISwitch не всегда соответствует спецификациям пользовательского интерфейса, которые люди имеют в виду, поэтому я думаю, что джентльмен, который разместил оригинальное сообщение, тоже не искал переключатель On/Off, а скорее хотел кнопку, которая каким-то образом изменила свое состояние.

Ответ 7

Мне тоже нужно это сделать. Не установил бы включенное состояние NO, чтобы кнопка была отброшена, хотя?

ОБНОВЛЕНИЕ

Люди предлагают UISwitch, но могут ли они быть обрезаны со всеми соответствующими вышеперечисленными, отключенными, выбраннымиUp, SelectedOver, selectedDisabled состояниями?