2011-09-02 8 views

Respuesta

1

No está claro por su pregunta por qué lo quiere, pero me imagino que es para diseñar sus vistas secundarias. Por suerte de Apple sabía que le gustaría hacer eso e implementado -(void)layoutSubViews ver esto: When is layoutSubviews called?

+0

Tengo (en el iPad) una vista web que carga algunos htmlcode locales para mostrar un video de youtube. el div html que contiene el reproductor debe ser del mismo tamaño que webView. pero dado que mi vista web está traducida de forma automática, necesito tener acceso a su tamaño personalizado. Sin embargo, todo lo que obtengo al registrar el marco son las dimensiones antes de cambiar el tamaño. – Jakob

+0

Lo que me molesta con eso - (vacío) El método layoutSubViews es que tendría que crear una subclase de UIWebView que me gustaría evitar – Jakob

+0

Entonces tienes un problema. ¿Por qué no reproducir el video de YouTube directamente para tener un mejor control sobre el diseño? Este es un problema notoriamente difícil de resolver con aplicaciones híbridas. Vea aquí http://stackoverflow.com/questions/4459975/iphonehow-to-stream-and-play-youtube-video-with-in-application-using-mpmovieplay para saber cómo hacerlo. –

-6
NSLog(@"%f; %f; %f; %f;", yourView.frame.origin.x, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height); 

esto es cómo se puede obtener el marco de la vista

+1

No responde la parte difícil: cuándo. –

+0

-1: no responde la pregunta –

0

Probé layoutSubviews, pero es llamado más de una vez, que es un problema cuando necesito el marco de tamaño automático para crear un CGContext para dibujar.

La solución que utilicé fue exponer un método init en mi personalizado UIView para que su controlador de vista padre llamara a su viewWillAppear.

Ojalá hubiera una manera de lograr esto dentro de la implementación personalizada de UIView, pero me elude (y Google y los documentos de Apple y SO).

0
- (void)viewDidAppear:(BOOL)animated { 
    CGFloat uIViewWidth = self.uIView.bounds.size.width; 
    CGFloat uIViewHeight = self.uIView.bounds.size.height; 
    CGRect uIViewSize = CGRectMake(0, 0, uIViewWidth, uIViewHeight); 
} 
Cuestiones relacionadas