每秒更改图像隐藏属性

时间:2014-08-14 03:31:03

标签: ios objective-c uiimageview hidden

我有一个图像视图,我想每秒更改隐藏的属性。因此,它应该在一秒钟内可见,然后它应该消失一秒钟然后它应该出现一秒钟,依此类推。

我尝试过这样的事情 -

for(int i =0; i<10; i++)
{
    sleep(1);
    if(i%2==0)
    {
        self.redImage.hidden=YES;             
    }
    else{
       self.redImage.hidden=NO;   
    }
}

但这似乎不起作用。等待所有10秒钟结束然后它出现。有人可以告诉我做了什么。谢谢

1 个答案:

答案 0 :(得分:1)

您应该使用重复计时器:

NSTimeInterval intervalCountDownTimer = 1;
NSTimer *timer = [NSTimer timerWithTimeInterval:intervalCountDownTimer target:self selector:@selector(hideOrShow:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

这将调用一个方法来更新图像上的隐藏属性。您需要在名为timerCount的类上创建一个NSInteger属性,以便在10秒后停止它。

- (void)hideOrShow:(NSTimer*)timer
{
    self.redImage.hidden = !self.redImage.hidden;

    self.timerCount += 1;
    if( self.timerCount >= 10 )
    {
        [timer invalidate];
    }
}

经过10次迭代后,您可以简单地使计时器无效,这将使其无法再次运行。