2010-10-10 2 views
2

У меня есть UIView и его подзаголовок. Когда я аниматирую myView (size.x + 20), мое подвью тоже анимируется, но я хочу перевести свой под просмотр в одно и то же время независимо (origin.x-40) (без перемещения подвью из-за изменения размера myView).ObjC - UIViews: анимационный просмотр и подзаголовок независимо?

Я смог сделать это, отрегулировав переводы (или лучшее положение, потому что я мог бы изменить y позже) .fromValue, .toValue и .duration, чтобы компенсировать движение, вызванное изменениями в myView.

UIView beginAnimations:nil context:NULL]; 
[myView setFrame:pVnewFrame]; 
[UIView commitAnimations]; 

CABasicAnimation *bBTranslateAnimation = [CABasicAnimation animationWithKeyPath:@"position"]; 
bBTranslateAnimation.delegate = self; 
bBTranslateAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(160, 480)]; 
bBTranslateAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(160, 436)]; 
bBTranslateAnimation.duration = 0.35; 
[buttonBar addAnimation:bBTranslateAnimation forKey:@"anim"]; 

Но это не правильное решение. Есть ли хороший способ переместить представление и подзаголовки самостоятельно? (настройка авторезистаПосмотры и авторезисторМаск не помогает)

Заранее благодарен!

ответ

3

Способ сделать это состоит в том, чтобы сделать два представления братьями и сестрами вместо того, чтобы сделать один вид подзаголовком другого. Просто поставьте представление, которое было подвью в верхней части представления, которое было родительским, и должно выглядеть так, как вы этого хотите.

Если вы хотите, чтобы «дочерний» вид был прикреплен к содержимому прежнего родительского представления, вам может потребоваться поместить представление, которое было дочерним элементом в представлении контейнера, которое является дочерним элементом представления, являющегося родительским, и установите вид контейнера opaque = no и с четким цветом фона. Однако это повлияет на производительность.

Смежные вопросы