2011-04-15 7 views
6

después de una larga búsqueda sin resultados, tal vez alguien sabe una respuesta a la siguiente problema:Animate incrustado propiedad marco UIWebView

Tengo un UIView que contiene una UIWebView como subvista. UIView es solo un contenedor, por lo que puedo colocar botones, etc. en la parte superior de UIWebView. Ahora quiero animar el cambio de tamaño y el reposicionamiento de UIView Y UIWebView simultáneamente. Quiero que parezca que solo se modificó el tamaño de UIWebView. He intentado varias técnicas de animación: Bloque/commit, implícita/explícita, por ejemplo, así:

[UIView beginAnimations:@"zoomIn" context:nil]; 
[UIView setAnimationDuration:1.0]; 

myWrapperUIView.frame = CGRect(0.0, 0.0, 500.0, 500.0); 
myUIWebView.frame = CGRect(0.0, 0.0, 500.0, 500.0); 

[UIView commitAnimations]; 

pero siempre me sale el resultado de que el UIView anima tipo de derecho, pero el UIWebView dentro cambia instantáneamente a la el nuevo marco, por lo que si hago un zoom desde un marco más grande, hay espacio vacío alrededor del UIWebView que se contrae durante la animación.

También probé una animación incrustada para UIWebView, pero el mismo resultado.

Mi pregunta es:
¿Hay alguna forma de animar ambas vistas simultáneamente para que en cada momento el UIWeb llene la UIView?

Gracias,
Michael

+0

u han resuelto la consulta mencionada anteriormente ??? Como también estoy teniendo el mismo problema ... Por favor, hágame saber cómo lo resolvió ... –

Respuesta

1

uso CGAffineTransform y la escala de la vista utilizando la transformada propiedad, que va a hacer el trabajo.

myWrapperUIView.frame = CGRect(0.0, 0.0, 500.0, 500.0); 
myUIWebView.frame = CGRect(0.0, 0.0, 500.0, 500.0); 
self.window.userInteractionEnabled =NO; 
myWrapperUIView.transform = CGAffineTransformMakeScale(0.01, 0.01); 
myUIWebView.transform = CGAffineTransformMakeScale(0.01, 0.01); 
[UIView animateWithDuration:ANIMATIONDURATION animations:^{ 
    myWrapperUIView.transform = CGAffineTransformMakeScale(1.0, 1.0); 
    myUIWebView.transform = CGAffineTransformMakeScale(1.0, 1.0); 
    }completion:^(BOOL finished) { 
     self.window.userInteractionEnabled = YES; 
}]; 

espero que esto ayude,