在触发方法运行时隐藏按钮

Posted

技术标签:

【中文标题】在触发方法运行时隐藏按钮【英文标题】:Hiding button while its triggered method is running 【发布时间】:2014-03-03 21:07:41 【问题描述】:

我有一个触发方法的按钮。此方法显示图像(由计时器间隔)并在显示一定数量的图像后停止。因此,按钮在按下后需要隐藏,因此无法再次按下并让我进入无限循环。我愿意接受任何用于实现这一目标的技术,但不会完全破坏效率。

这是我的尝试:

-(IBAction)spinButton:(id)sender 
 //hide spin button after press
 spinButton.hidden = YES;
// The count starts at 0, so initialize "count" to 0.
count = 0;
// Use an NSTimer to call displayPic: repeatedly every 1 second ("repeats" is set to "YES")
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(displayPic:) userInfo:nil repeats:YES];
//show button after method has fully executed
spinButton.hidden = NO;

我无法使用上面提供的代码让按钮消失。注意:如果我省略了最后一行(spinButton.hidden = NO;),第一次按下时按钮会消失并且永远不会重新出现。

【问题讨论】:

当你停止计时器时(显示一定数量的图像后)再次显示按钮怎么样? 【参考方案1】:

您不应该只是将spinButton.hidden=NO 移动到displayPic (在检查计数是否足够高的 if 内部?)

【讨论】:

那是我的第一次尝试。我回去检查我第一次是否犯了错误,发现我的 spinButton.hidden=NO 在我的 if 语句中遵循了我的无效计时器。我切换了订单,它完美无缺!有时你需要另一双眼睛。谢谢【参考方案2】:

您正在隐藏按钮并再次取消隐藏。视图永远不会在两者之间更新,即使是该方法也会在几毫秒内执行,因此您将无法看到它。您可能想将最后一行移到另一种方法中,例如你的displayPic: 方法。

【讨论】:

以上是关于在触发方法运行时隐藏按钮的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据

在运行时隐藏通知操作按钮

iPad键盘隐藏时不会触发输入字段模糊事件?

UIButton 在运行时更改尺寸

在 iOS 设备上使用后退按钮时未触发 CSS 关键帧动画

在 VBA ODBC 中运行附加查询时隐藏对话框