Я пытался найти достойный способ плавно анимировать изменение размера кадра на UILabel, без странного начального перерисовки скачка. По умолчанию происходит следующее:
// Assume myLabel frame starts as (0, 0, 100, 200)
[UIView beginAnimations:@"myAnim" context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:1.0];
myLabel.frame = CGRectMake(0.0, 0.0, 50, 100);
[UIView commitAnimations];
Я получаю плавную анимацию с меткой, однако делает так, что он берет слой перерисованного изображения для целевого размера метки и растягивает содержимое, чтобы оно соответствовало текущему, затем анимирует до места назначения Это заканчивается очень странным скачком на текстовом дисплее. Вот два изображения, показывающие внешний вид до анимации, а затем сразу после запуска анимации:
Pre-анимация
Post-анимация
Я пытался использовать только слой, чтобы оживить это, но у меня все еще возникают те же проблемы.
Итак, вопрос в том, как мне этого избежать?
Спасибо за любую помощь,
Скотт