防止同时触摸多个按钮

时间:2010-08-13 16:24:23

标签: iphone objective-c uikit ios multi-touch

在iOS中,无论如何都要防止同时触摸包含多个按钮(兄弟姐妹)的UIView?例如,可以通过两次触摸同时点击两个并排的非重叠按钮。

7 个答案:

答案 0 :(得分:93)

设置UIView.exclusiveTouch。

答案 1 :(得分:11)

您也可以使用以下方法。如果您有两个或更多按钮,则一次防止多次按下。

例如,

[Button1 setExclusiveTouch:YES];

[Button2 setExclusiveTouch:YES];

viewDidLoadviewWillAppear

中设置此方法

答案 2 :(得分:2)

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

答案 3 :(得分:2)

快速4语法:

    buttonA.isExclusiveTouch = true
    buttonB.isExclusiveTouch = true

答案 4 :(得分:0)

您需要找到该视图上的所有按钮,并将“ exclusiveTouch ”属性设置为 true ,以防止同时出现多点触控。

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

答案 5 :(得分:0)

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;
}

答案 6 :(得分:0)

要启用独占触摸,您需要为每个元素设置属性 isExclusiveTouch

myView.isExclusiveTouch = true

如果您希望更改默认行为,您可以使用 UIView 类的 UIAppearance。

UIView.appearance().isExclusiveTouch = true
相关问题