繁体   English   中英

如何禁用8个按钮的多点触控3? Xcode的

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM