我想为我的 UILabel 设置动画,使其看起来像向上计数。为了争论,我只想说我希望它每秒增加 1。
以下方法均未正常工作。
一个简单的 for 循环(此处的示例)不起作用,因为它的速度太快了。
for(int i =0;i<1000;i++)
{
lblNum.text = [NSString stringWithFormat:@"%d",i];
}
添加 sleep(1) 不起作用,因为执行是异步的(我认为这至少是为什么)
我也试过:
for(int i=0;i<1000;i++)
{
[self performSelector:@selector(updateLbl:)
withObject:[NSNumber numberWithInt:i ] afterDelay:1];
}
-(void)updateLbl:(NSNumber *)num
{
lblNum.text = [NSString stringWithFormat:@"%@",num];
}
也:
for(int i=0;i<1000;i++)
{
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
// Do something...
sleep(1);
dispatch_async(dispatch_get_main_queue(), ^{
lblNum.text = [NSString stringWithFormat:@"%d",i];
});
});
}