2011-11-09 9 views
8

Estoy intentando animar el cambio de marco de una UIView donde cambian tanto el origen como el tamaño. La animación no se ve suave y tiene un efecto de rebote. Estoy utilizando el código siguiente para hacer esoLa animación del cambio de marco de UIView no es uniforme, da como resultado un efecto de rebote

[UIView 
    animateWithDuration:0.5 
    animations:^{ 
     self.view.frame = newFrame; 
    }]; 

Parece que el tamaño primeros cambios muy rápidos y luego los cambios de origen con la duración especificada de la animación que finalmente se traduce en un efecto hinchable. ¿Cómo hago que se vea suave?

Respuesta

3

Al animar el cambio de marco de cada una de las subvistas hizo la magia. Ahora se anima muy suavemente. Gracias.

12

Puede tratar de cambiar la curva de animación, tal vez pruebe la lineal.

dispatch_async(dispatch_get_main_queue(), ^{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
    self.view.frame = newFrame; 
    [UIView commitAnimations]; 
}); 
+0

Ya había intentado usar UIViewAnimationCurveLinear, pero no funcionó. El tamaño se cambia inmediatamente y luego comienza la animación para el cambio de posición. –

+0

¿Ha intentado utilizar todo el bloque de código? Acabo de probarlo - y tanto el tamaño como el origen se animan sin problemas al mismo tiempo – Mellson

+0

que está haciendo esto en el hilo principal ¿verdad? – Mellson

Cuestiones relacionadas