ios - 显示/隐藏 subview 的计时器
<p><p>我遇到了一些事情希望你们能帮忙</p>
<p>我有一个 scrollview ,当用户滚动 subview 时,会出现从下到上的动画。然后计时器开始计数 5 秒,然后调用另一个方法来隐藏 subview </p>
<p>我实现了,它按要求工作,除了:
当 subview 出现并且几乎要隐藏时,如果我滚动那一刻, subview 会静态显示并且从不隐藏。尝试再次滚动另一个 subview 动态地在静态 View 上工作(因为它重复或其他)</p>
<p>这是我控制 subview 显示和隐藏的代码</p>
<pre><code> - (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(!show){
;
if (!myidleTimer)
;
}
}
-(void)resetIdleTimer
{
//convert the wait period into minutes rather than seconds
int timeout = kApplicationTimeoutInMinutes;// equal to 5 seconds
;
myidleTimer = ;
}
-(void)idleTimerExceeded
{
if (show){
;
;
show=false;
}
}
</code></pre>
<p>"show"是一个 bool 值,用于确保何时隐藏和何时显示
她是显示/隐藏实现</p>
<pre><code>-(void)hideSubview{
[UIView animateWithDuration:0.5
animations:^{
subview.frame = CGRectMake(0, screenWidth, screenHeight, 60);//move it out of screen
} completion:^(BOOL finished) {
;
subview.frame=CGRectMake(0,screenWidth, screenHeight, 0);
}];
show=false;
}
-(void) showSubview{
subview = [ init ];
;
subview.frame = CGRectMake(0, screenWidth, screenHeight, 60);
[UIView animateWithDuration:1.0
animations:^{
subview.frame = CGRectMake(0, screenWidth-60, screenHeight, 60);
}];
show=TRUE;
}
</code></pre>
<p>我希望它足够清楚,可以理解并能够帮助我识别问题
提前致谢</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果您按照自己的方式创建计时器,则在 ScrollView 时计时器不会触发。相反,请按如下方式创建它。</p>
<pre><code>NSTimer *timer = ;
[ addTimer:timer forMode:NSRunLoopCommonModes];
</code></pre>
<p>scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:使用 defaultRunLoopMode 而不是 NSRunLoopCommonModes 将计时器添加到运行循环,这是您希望在用户滚动时触发计时器的模式。</p></p>
<p style="font-size: 20px;">关于ios - 显示/隐藏 subview 的计时器,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/20862993/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/20862993/
</a>
</p>
页:
[1]