代码之家  ›  专栏  ›  技术社区  ›  microspino

UiView淡出(如果未接触)

  •  0
  • microspino  · 技术社区  · 14 年前

    我想在我的iPad应用程序中重现这种行为。

    • 视图的alpha值为0.0
    • 我有另一个自定义按钮,上面描述的视图外,总是可见的。
    • 现在我想启动一个计时器,在2秒钟后触发淡出

    换言之,只有当没有人触摸其中的按钮时,视图才可能消失。

    我已经设法学习了UIView动画的基础知识,但我不知道如何对它们进行排队。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Max Seelemann    14 年前

    你应该保持沉默 NSTimer

    _fadeTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fade:) userInfo:nil repeats:NO];
    

    确保\u fadeTimer是一个实例变量,您需要能够重置它。然后实现淡出方法:

    - (void)fade:(NSTimer *)aTimer {
        // Forget about timer!
        _fadeTimer = nil;
    
        [UIView beginAnimations:nil context:NULL];
        // fade here
        [UIView commitAnimations];
    }
    

    每次用户交互时,只需调用一个延迟淡入淡出的方法。为此,请删除并重新创建计时器。或者更改火灾日期:

    - (void)delayFade {
        [_fadeTimer setFireDate: [NSDate dateWithTimeIntervalSinceNow: 2.0]];
    }
    

    nil ,否则您的应用程序可能会因无效访问而崩溃。如果您需要删除重新启动的时间,请调用 invalidate