[英]How to disable multitouch 3 of 8 buttons? xcode
我有8个按钮,我想这样做:单击其中一个按钮时将变灰,三个和四个处于活动状态。 但是当我按住该按钮但不按该按钮时会发生这种情况。 如果将手指移至该按钮上并按下,则所有按钮都将处于活动状态。 我尝试使用“ exclusiveTouch”,但所有7个按钮均变为无效。
码:
- (void)viewDidLoad
{
qsq.exclusiveTouch = YES;
qsq2.exclusiveTouch = YES;
qsq3.exclusiveTouch = YES;
qsq4.exclusiveTouch = YES;
qsq_plr2.exclusiveTouch = YES;
qsq2_plr2.exclusiveTouch = YES;
qsq3_plr2.exclusiveTouch = YES;
qsq4_plr2.exclusiveTouch = YES;
}
当我单击“ qsq”时,所有按钮均处于非活动状态。 但是我需要使qsq2,qsq3,qsq4处于非活动状态,并且其他按钮处于活动状态。
看来您的设计比基本的UIView
属性可以处理的要复杂一些。 这是解决方案的示例,仅使用2个按钮。
设定:
[button1 addTarget:self action:@selector(disableButtons:) forControlEvents:UIControlEventTouchDown];
[button1 addTarget:self action:@selector(reenableButtons:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchUpOutside|UIControlEventTouchCancel];
[button2 addTarget:self action:@selector(disableButtons:) forControlEvents:UIControlEventTouchDown];
[button2 addTarget:self action:@selector(reenableButtons:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchUpOutside|UIControlEventTouchCancel];
在回调中,禁用需要禁用的按钮:
-(void) disableButtons:(UIButton*)button {
if (button == button1) {
button2.enabled = FALSE;
} else if (button == button2) {
button1.enabled = FALSE;
}
}
-(void) reenableButtons:(UIButton*)button {
if (button == button1 || button == button2) {
button1.enabled = TRUE;
button2.enabled = TRUE;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.