Предотвращение одновременного нажатия нескольких кнопок - PullRequest
36 голосов
/ 13 августа 2010

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

Ответы [ 6 ]

94 голосов
/ 13 августа 2010

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

11 голосов
/ 02 апреля 2014

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

например,

[Button1 setExclusiveTouch:YES];

[Button2 setExclusiveTouch:YES];

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

2 голосов
/ 23 июня 2018

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

    buttonA.isExclusiveTouch = true
    buttonB.isExclusiveTouch = true
2 голосов
/ 24 августа 2016
for(UIView* v in self.view.subviews)
    {
    if([v isKindOfClass:[UIButton class]])
    {
        UIButton* btn = (UIButton*)v;
        [yourButton setExclusiveTouch:YES];
    }
}
0 голосов
/ 18 января 2019
I have tried both  multiTouchEnabled and exclusiveTouch but unfortunately 
none of them workout for me.I have tried the following code worked 
perfectly.

Установить этот код в файл .h

BOOL ClickedBool;

Установить следующий код при запуске метода.

if(ClickedBool==TRUE)
{
     return;
}
else
{
    ClickedBool=TRUE;
}
0 голосов
/ 21 октября 2016

Вам нужно найти все кнопки в этом представлении и установить для свойства " exclusiveTouch " значение true , чтобы не допустить одновременного мультитач.

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