У меня есть подкласс UIView
, который состоит из нескольких слоев (в основном CAShapeLayers
с несколькими CATextLayers
). У меня проблема в том, что если я анимирую изменение размера UIView
с помощью блока анимации (beginAnimations
, commitAnimations
) и ретранслируем подслои в переопределенном layoutSubviews
тогда слои не анимируются с помощью UIView
.
Ниже приведен мой код для анимации кадра UIView
:
miniView.backgroundColor = [UIColor orangeColor];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationRepeatCount:MAXFLOAT];
[UIView setAnimationRepeatAutoreverses:YES];
miniView.frame = newFrame;
[UIView commitAnimations];
Так что проблема в том, что представление правильно анимировано, а подслои - нет. Я могу видеть, как вид растет и уменьшается, но подслои растут сразу, а затем остаются новые большего размера. Каков наилучший способ изменить размер подслоев представления при изменении размера представления? И как мне сделать их одушевленными таким же образом с родительским представлением?