在触发方法运行时隐藏按钮
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:
方法。
【讨论】:
以上是关于在触发方法运行时隐藏按钮的主要内容,如果未能解决你的问题,请参考以下文章