我希望标签显示0.4秒,然后隐藏0.8秒 - 无限循环。
我该如何解决这个问题?
答案 0 :(得分:2)
答案 1 :(得分:1)
我会说使用NSTimer。你可以通过以下方式完成:
说你的标签是myLabel
:
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
您应该创建一个由NSTimer
调用的方法:
- (void)changeLabelState:(NSTimer *)timer
{
if(self.myLabel.hidden == TRUE)
{
self.myLabel.hidden = FALSE; //change comparassion to assing
[NSTimer scheduledTimerWithTimeInterval:0.4
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
}
else
{
self.myLabel.hidden = TRUE;
[NSTimer scheduledTimerWithTimeInterval:0.8
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
}
}
并在某处初始化NSTimer
:
[NSTimer scheduledTimerWithTimeInterval:0.4
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
请注意,您还可以执行以下操作:
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.4];
- (void)changeLabelState:(NSTimer *)timer
{
if(self.myLabel.hidden == TRUE)
{
self.myLabel.hidden = FALSE;
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.4];
}
else
{
self.myLabel.hidden = TRUE;
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.8];
}
}
答案 2 :(得分:0)
像下面的东西。
在viewDidLoad中:
NSTimer *silly = [NSTimer timerWithTimeInterval:0.4 target:self selector:@selector(question) userInfo:nil repeats:YES];
功能
-(void)question {
if(label.isHidden){
label.hidden = false;
} else {
label.hidden = true;
}
}
确保在此功能的范围内定义了UILabel,它应该可以工作。 UNTESTED。