使用我的iPhone应用程序,我需要一个在指定时间内可见的标签。我该如何管理呢? 显示一个标签,例如可见10秒钟,但随后会从视图层次结构中删除?
提前感谢您的帮助! :)
答案 0 :(得分:2)
显示标签,然后启动NSTimer
,其超时回调方法隐藏标签。 (我隐藏了标签,而不是将其从视图层次结构中移除,这可能是也可能不合适。)
代码类似于NSTimers and triggers in Obj-C
的答案MyViewController.h:
...
@interface MyViewController : UIViewController
{
...
UILabel* label;
NSTimer* timer;
...
}
...
MyViewController.m:
...
static const NSTimeInterval TIMER_INTERVAL = 10.0;
...
- (void)dealloc
{
[self stopTimer];
...
[super dealloc];
}
...
- (void)showLabelAndStartTimer
{
label.hidden = NO;
[self startTimer];
}
...
- (void)startTimer
{
[self stopTimer];
timer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL
target:self
selector:@selector(timerCallback)
userInfo:nil
repeats:NO];
[timer retain];
}
...
- (void)stopTimer
{
if (timer)
{
[timer invalidate];
[timer release];
timer = nil;
}
}
...
- (void)timerCallback
{
label.hidden = YES;
}
答案 1 :(得分:2)
将其放入viewWillAppear
:
[self performSelector:@selector(hideLabel) withObject:nil afterDelay:0.0];
在hideLabel
中,隐藏您的标签,如下所示:
-(void)hideLabel {
yourLabel.hidden=YES;
}
根据您在此处afterDelay:0.0
指定时间。