Iphone 防止同时触摸多个按钮

Iphone 防止同时触摸多个按钮,iphone,objective-c,uikit,ios,multi-touch,Iphone,Objective C,Uikit,Ios,Multi Touch,在iOS中,是否存在防止同时触摸包含多个按钮(同级)的UIView的方法?例如,两个并排的非重叠按钮可以通过两次触摸同时点击。设置UIView.exclusiveTouch。您也可以使用以下方法。如果您有两个或两个以上的按钮,以防止一次按下多个按钮 例如 [Button1 setExclusiveTouch:YES]; [Button2 setExclusiveTouch:YES]; 在您的viewdiload或视图中设置此方法将出现您需要找到该视图上的所有按钮,并将“exclusiveTo

在iOS中,是否存在防止同时触摸包含多个按钮(同级)的UIView的方法?例如,两个并排的非重叠按钮可以通过两次触摸同时点击。

设置UIView.exclusiveTouch。

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

例如

[Button1 setExclusiveTouch:YES];

[Button2 setExclusiveTouch:YES];

在您的
viewdiload
视图中设置此方法将出现

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

for(UIView* v in self.view.subviews)
    {
    if([v isKindOfClass:[UIButton class]])
    {
        UIButton* btn = (UIButton*)v;
        [yourButton setExclusiveTouch:YES];
    }
}
func exclusiveTouchForButtons(view: UIView) {
    for cmp in view.subviews {
        if let cmpButton = cmp as? UIButton {
            cmpButton.exclusiveTouch = true
        } else {
            exclusiveTouchForButtons(cmp)
        }
    }
}
Swift 4语法:

    buttonA.isExclusiveTouch = true
    buttonB.isExclusiveTouch = true
将此代码设置为.h文件 在方法开始时设置以下代码。
要启用独占触摸,需要为每个元素设置属性
isExclusiveTouch

myView.isExclusiveTouch = true
如果希望更改默认行为,可以使用UIView类的UIAppearance

UIView.appearance().isExclusiveTouch = true

令人惊叹的!我不知道为什么我没有想到这个按钮?!完美的这就像是隐藏的宝藏,从来都不知道这个财产,非常感谢。请注意在每个“UIButton”上设置它!这些按钮所在的UIView不是:)(在该UIView的所有子视图上设置可以这样做->[self.controlView.subviews makeObjectsPerformSelector:@selector(setExclusiveTouch:)with object:[NSNumber numberWithBool:YES]@隆:那不一定行
-setExclusiveTouch:
接受BOOL,而不是NSNumber(如果该数字恰好被解释为YES,则可能有效,但这不能保证)。我称之为
UIView.exclusiveTouch
,因为该属性是在类中定义的(UIButton是UIView)。@Hlung:文档肯定不能保证这一点,文档中说“该方法必须采用id类型的单个参数”。在x86上的AIUI,如果地址可以被256整除,那么它将等价于NO(因为BOOL是有符号字符,所以它只查看底部的8位)。我还听说UIKit将2解释为否(即代码只查看底部位;这并不奇怪)。该答案并没有真正提供对现有答案的补充。
if(ClickedBool==TRUE)
{
     return;
}
else
{
    ClickedBool=TRUE;
}
myView.isExclusiveTouch = true
UIView.appearance().isExclusiveTouch = true