Iphone 防止同时触摸多个按钮
在iOS中,是否存在防止同时触摸包含多个按钮(同级)的UIView的方法?例如,两个并排的非重叠按钮可以通过两次触摸同时点击。设置UIView.exclusiveTouch。您也可以使用以下方法。如果您有两个或两个以上的按钮,以防止一次按下多个按钮 例如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
[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