1

是否可以在用户点击时禁用 uibutton?

我使用 NBTouchAndHoldButton,在我的方法中,我希望在达到某个数字时禁用该按钮。

IE

//......
    [touchAndHoldButton addTarget:self action:@selector(countNumbers:) forTouchAndHoldControlEventWithTimeInterval:0.2];

//.....

-(void) countNumbers {

[self countTheNumbers];

if (currentNumber == 10) {
        touchAndHoldButton.userInteractionEnabled = NO;

        }

}

因此,当达到数字 10 时按住按钮,我希望禁用该按钮并从该点开始忽略触摸。在上面的示例中,按钮仍然接收来自用户的输入,直到用户抬起手指。然后它进入禁用状态。那可能吗?

4

2 回答 2

0
//..........

[self.btnObj addTarget:self action:@selector(countNumbers) forTouchAndHoldControlEventWithTimeInterval:0.2];

//..............

-(void) countNumbers {
    if (currentNumber == 10) {
        self.btnObj.userInteractionEnabled = NO;
        return;
    }
    [self countTheNumbers];
}
-(void)countTheNumbers{
    currentNumber++;
}

试试这个。希望它对你有帮助。

于 2013-05-03T05:59:07.840 回答
0

假设您使用NBTouchAndHoldButton的是:https ://github.com/balazsnemeth/NBTouchAndHoldButton

在“NBTouchAndHoldButton.h”中,您需要公开 holdTimer 属性:

@property (strong, nonatomic) NSTimer* holdTimer;

然后,在“NBTouchAndHoldButton.m”中,您需要注释原始holdTimer声明并合成全新创建的属性:

//NSTimer* holdTimer;
@synthesize holdTimer;

这样,您可以在代码达到指定条件时使计时器无效。假设您的按钮名称是btnStartAnimation,您所要做的就是:

[btnStartAnimation.holdTimer invalidate];
于 2015-03-03T17:41:52.273 回答