In iOS is there anyway to prevent a UIView containing multiple buttons (siblings) from being simultaneously from being touched? For instance, two non-overlapping buttons that ar
You need to find all buttons on that view and set the "exclusiveTouch" property to true in order to prevent multi touch at the same time.
func exclusiveTouchForButtons(view: UIView) {
for cmp in view.subviews {
if let cmpButton = cmp as? UIButton {
cmpButton.exclusiveTouch = true
} else {
exclusiveTouchForButtons(cmp)
}
}
}
I have tried both multiTouchEnabled and exclusiveTouch but unfortunately
none of them workout for me.I have tried the following code worked
perfectly.
BOOL ClickedBool;
if(ClickedBool==TRUE)
{
return;
}
else
{
ClickedBool=TRUE;
}
for(UIView* v in self.view.subviews)
{
if([v isKindOfClass:[UIButton class]])
{
UIButton* btn = (UIButton*)v;
[yourButton setExclusiveTouch:YES];
}
}
Set UIView.exclusiveTouch.
Swift 4 Syntax:
buttonA.isExclusiveTouch = true
buttonB.isExclusiveTouch = true
You can also use below method. If you have two buttons or more, to prevent multiple push at a time.
for e.g,
[Button1 setExclusiveTouch:YES];
[Button2 setExclusiveTouch:YES];
Set this method in your viewDidLoad
or viewWillAppear