2012-01-27 2 views
2

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

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

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

ответ

8

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

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

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

+0

У меня был шанс проверить это, и я смог немного упростить свой ответ. –

+0

wow awesome! работал на меня ... не знал, что это было так просто! – Joe

+0

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

Смежные вопросы