Vi algo de material en la web, pero todavía no puedo llegar a donde quiero. Necesito animar mi vista hacia abajo, haciendo que sea más grande.Cómo animar al redimensionar UIView
Aquí está mi código hasta ahora. Lo que está sucediendo aquí, es que en lugar de cambiar el tamaño de mi vista, solo está cambiando un poco su ubicación. Si cambio la propiedad en lugar de "bounds.size" para que sea "transform.scale.y", es un poco mejor, solo que esta vez expande la vista tanto hacia arriba como hacia abajo, no solo hacia abajo.
Otra cosa que no soy: ¿estas claves son solo propiedades de CALayer? donde puedo encontrar una lista de estas claves?
Realmente agradecería ayuda aquí. ¡Gracias!
int x = self.btnHead.frame.origin.x;
int y = self.btnHead.frame.origin.y;
int height = self.btnHead.frame.size.height;
int width = self.btnHead.frame.size.width;
CABasicAnimation *resizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
[resizeAnimation setToValue:[NSValue valueWithCGSize:CGSizeMake(width,height+50)]];
resizeAnimation.fillMode = kCAFillModeForwards;
resizeAnimation.removedOnCompletion = NO;
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.animations = [NSArray arrayWithObjects:resizeAnimation,nil];
animationGroup.removedOnCompletion = NO;
animationGroup.fillMode = kCAFillModeForwards;
animationGroup.removedOnCompletion=NO;
animationGroup.duration = 0.1;
[self.btnHead.layer addAnimation:animationGroup forKey:@"animations"];
Editar: la publicación de mi primer código conforme a lo solicitado - Esto sólo cambiará el tamaño de mi punto de vista, pero no tendrá la animación, sin importar la duración entro.
int x = self.btnHead.frame.origin.x;
int y = self.btnHead.frame.origin.y;
int height = self.btnHead.frame.size.height;
int width = self.btnHead.frame.size.width;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10];
CGRect rect = CGRectMake(x,y,width ,height+BUTTON_HEIGH*2);
self.btnHead.frame = rect;
[UIView commitAnimations];
Supongo que la configuración 'btnHead.clipsToBounds = YES' fuerza efectivamente un redibujado como lo haría la configuración 'btnHead.contentMode = UIViewContentModeRedraw'. Sin embargo, no menciona nada sobre eso en la documentación. Esto probablemente ocurra porque es muy probable que al cambiar los 'límites 'de una vista con el recorte activado, se muestren partes de su jerarquía de vista que antes no eran visibles. Así es como funcionan las vistas de desplazamiento. –