如何制作闪烁的标签

时间:2013-02-25 16:45:00

标签: objective-c xcode uilabel nstimer

我希望标签显示0.4秒,然后隐藏0.8秒 - 无限循环。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

NSTimerUIView hidden属性是一种可能性

答案 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。