Предотвращение одновременного нажатия нескольких кнопок

в iOS есть ли способ предотвратить одновременное касание UIView, содержащего несколько кнопок (братьев и сестер)? Например, две неперекрывающиеся кнопки, которые находятся рядом, могут быть нажаты одновременно двумя касаниями.

5 ответов


Установить Ему UIView.exclusiveTouch.


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

для электронной.г,

[Button1 setExclusiveTouch:YES];

[Button2 setExclusiveTouch:YES];

установите этот метод в свой viewDidLoad или viewWillAppear


for(UIView* v in self.view.subviews)
    {
    if([v isKindOfClass:[UIButton class]])
    {
        UIButton* btn = (UIButton*)v;
        [yourButton setExclusiveTouch:YES];
    }
}

Синтаксис Swift 4:

    buttonA.isExclusiveTouch = true
    buttonB.isExclusiveTouch = true

вам нужно найти все кнопки на этом представлении и установить "exclusiveTouch" свойство true предотвратить multi касание в тоже время.

func exclusiveTouchForButtons(view: UIView) {
    for cmp in view.subviews {
        if let cmpButton = cmp as? UIButton {
            cmpButton.exclusiveTouch = true
        } else {
            exclusiveTouchForButtons(cmp)
        }
    }
}