Две кнопки одновременного нажатия ввода - PullRequest
2 голосов
/ 27 января 2012

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

Это похоже на ctrl + alt + del в Windows или когда для последовательности ядерной активации требуется, чтобы два человека одновременно нажимали кнопку в разных местах.

Что может быть лучшим способом? Создать представление, которое перехватывает прикосновения, а затем посмотреть, где приземляются касания?

1 Ответ

8 голосов
/ 27 января 2012

Поскольку UIButton является подклассом UIControl, он наследует свойство touchInside UIControl. Кроме того, когда UIButton отправляет действие "подкраска внутрь", оно все равно отвечает на touchInside с YES. Таким образом, вы можете просто подключить обе кнопки к этому действию:

- (IBAction)buttonWasTouched:(id)sender {
    if (self.button1.touchInside && self.button2.touchInside) {
        [self launchNukes];
    }
}

По умолчанию Interface Builder подключается к событию touch-up-inside при перетаскивании с помощью элемента управления. Если вы предпочитаете запускать ядерное оружие одновременно с касанием второй кнопки, подключите события касания. Это можно сделать, нажав и удерживая кнопки управления, а не перетаскивая их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...