我正在寻求实现与android上的zoomControl相似的行为,按钮在其中出现,并且在与按钮交互时保持可见,但是如果在一段时间内未与按钮交互,它们就会消失。
一般逻辑如下所示:
显示按钮:在我希望它显示的时间开始某种计时器/事件
如果与按钮发生交互,则将计时器/事件重置为新的时间量
如果点击了计时器/事件,则隐藏按钮。
我可以对一些方法运行performSelector
afterDelay
,该方法将在每次交互时都隐藏按钮,并让performSelector
调用hide方法的按钮检查一些计数/标志,该计数/标志将随每次交互而增加..似乎不太优雅:
显示按钮:递增计数:performSelector 5秒后隐藏
按钮操作:增加计数:执行选择器5秒钟后隐藏
隐藏:如果count!= 0,则递减计数,否则不执行任何操作,否则隐藏按钮
有没有更好的办法?这对我来说有点糊涂。
最佳答案
用制作NSTimer
myButtonHideTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(hideButton:) userInfo:nil repeats:NO];
然后,如果您在计时器触发 call 之前进行了互动
[myButtonHideTimer invalidate];//This stops the event from triggering
然后重新创建计时器以重置触发时间
关于ios - 如果在一定时间内未交互,则隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10850645/