隐藏指示器(定时任务)
定义:在用户的操作过程中,需要弹出一些文字(HUD)来对用户的操作进行相应的提示。然而这些文字只需要出现一定的时间之后,隐藏即可。以下介绍三种方法。
*文中类似<#(nonnull SEL)#>表示需要插入代码的部分
首先创建HUD:
UILabel *HUD = [[UILabel alloc]init];
HUD.text = @"XXXX";
方法一:performSelector
[self performSelector:<#(nonnull SEL)#> withObject:<#(nullable id)#> afterDelay:<#(NSTimeInterval)#>];
//举例:传入hideHud方法,通过改变HUD透明度使其在2秒后消失
[self performSelector:@selector(hideHud) withObject:nil afterDelay:2.0];
-(void)hideHud{
HUD.alpha = 0;
}
方法二:GCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
<#code to be executed after a specified delay#>
});
//举例:在1秒后,通过改变HUD透明度使其消失
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
HUD.alpha = 0;
});
方法三:NSTimer
[NSTimer scheduledTimerWithTimeInterval:<#(NSTimeInterval)#> target:<#(nonnull id)#> selector:<#(nonnull SEL)#> userInfo:<#(nullable id)#> repeats:<#(BOOL)#>];
//举例:传入hideHud方法,通过改变HUD透明度使其在1.5秒后消失
[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(hideHud) userInfo:nil repeats:NO];
-(void)hideHud{
HUD.alpha = 0;
}