Я пытаюсь анимировать значения UILabel при появлении представления. Поэтому я создал эту функцию.
private func animateIncrementUILabel(label: SpringLabel, labelValue: Int, animationPeriod: Float?)
{
animationPeriod != nil ? animationPeriod! : 40
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {
for (var i = 0; i < labelValue; i++)
{
usleep(UInt32(animationPeriod!)/100 * 1000000)
dispatch_async(dispatch_get_main_queue(), {
label.text = String(i)
})
}
})
}
но при вызове этого в моем методе viewDidAppear, например
animateIncrementUILabel(counterLabelOne, labelValue: 20, animationPeriod: 40.0)
он показывает значение сразу в метке без «анимированного приращения».
Что я здесь делаю неправильно?