gpt4 book ai didi

ios - 防止多次点击同一个 UIButton

转载 作者:可可西里 更新时间:2023-11-01 03:28:21 25 4
gpt4 key购买 nike

有时在我的应用程序中我会收到此错误,因为 UI 卡住并且用户多次点击按钮:

"pushing the same view controller instance more than once is not supported"

我试过这个:

How to prevent multiple event on same UIButton in iOS?

它就像一个魅力,但如果我的标签栏有超过 5 个元素,如果我点击显示元素大于 5 的按钮,则更多按钮从左到右动画。

是否有其他不使用动画的简单方法来防止双标签?

这是我正在使用的代码:

- (IBAction)btnAction:(id)sender {
UIButton *bCustom = (UIButton *)sender;
bCustom.userInteractionEnabled = NO;
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionAllowAnimatedContent animations:^{
[self selectTabControllerIndex:bCustom.tag];
} completion:^(BOOL finished){
bCustom.userInteractionEnabled = YES;
}];
}

最佳答案

首先提示,如果您只有按钮调用该选择器,您可以将 id 更改为 UIButton* 并删除额外的变量 bCustom.

现在,要解决您的问题,您只需确保在完成所有其他需要做的事情后将 userInteractionEnabled 恢复为 YES。使用动画 block 只是一种简单的方法,因为它内置了一个完成处理程序。

您只需让 selectTabControllerIndex 方法为您完成这项工作即可。

像这样:

- (IBAction)btnAction:(UIButton*)sender {
sender.userInteractionEnabled = NO;
[self selectTabControllerForButton:sender];
}

- (void)selectTabControllerForButton:(UIButton*)sender {
// Whatever selectTabControllerIndex does now goes here, use sender.tag as you used index
sender.userInteractionEnabled = YES;
}

如果之后可能需要执行其他代码,则可以将完成处理程序添加到 selectTabControllerIndex 方法中,然后调用完成处理程序。您将在其中包含 sender.userInteractionEnabled = YES; 行。但如果始终是相同的代码,则第一种方法更简单、更快捷。

关于ios - 防止多次点击同一个 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com