在按下时禁用uibutton?

时间:2013-05-03 00:12:35

标签: iphone sdk uibutton

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

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

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

//.....

-(void) countNumbers {

[self countTheNumbers];

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

        }

}

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

2 个答案:

答案 0 :(得分: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++;
}

试试这个。希望它可以帮助你。

答案 1 :(得分:0)

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

在" NBTouchAndHoldButton.h"你需要公开holdTimer属性:

@property (strong, nonatomic) NSTimer* holdTimer;

然后在" NBTouchAndHoldButton.m"中,您需要评论原始的holdTimer声明并同步化全新创建的属性:

//NSTimer* holdTimer;
@synthesize holdTimer;

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

[btnStartAnimation.holdTimer invalidate];