2011-09-02 9 views

risposta

1

Non è chiaro dalla tua domanda perché lo vuoi ma immagino che sia per impaginare le tue viste secondarie. Per fortuna di Apple sapeva che si vorrebbe fare e implementato -(void)layoutSubViews vedono questo: When is layoutSubviews called?

+0

Ho (sul iPad) una webView che carica un codice html locale per visualizzare un video di youtube. il div html che contiene il player deve avere le stesse dimensioni della webView. ma dal momento che la mia webview è autorizzata ho bisogno di avere accesso alle sue dimensioni autorizzate. Eppure tutto ciò che ottengo quando si registra il frame sono le dimensioni prima che si verificasse il ridimensionamento. – Jakob

+0

Ciò che mi infastidisce di questo metodo (void) layoutSubViews è che dovrei sottoclassi un UIWebView che vorrei evitare – Jakob

+0

Quindi hai un problema. Perché non riprodurre direttamente il video di YouTube in modo da ottenere un controllo migliore sul layout. Questo è un problema notoriamente difficile da risolvere con le app ibride. Vedi qui http://stackoverflow.com/questions/4459975/iphonehow-to-stream-and-play-youtube-video-with-in-application-using-mpmovieplay per come farlo. –

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

in questo modo è possibile ottenere cornice della vista

+1

Non risponde alla parte difficile: quando. –

+0

-1: non risponde alla domanda –

0

ho provato layoutSubviews, ma viene chiamato più di una volta, che è un problema quando ho bisogno della cornice auto dimensionata per creare un CGContext da disegnare.

La soluzione che ho usato è stato quello di esporre un metodo init sulla mia abitudine UIView per il suo controllore vista padre a chiamare nella sua viewWillAppear.

Vorrei che ci fosse un modo per realizzare tutto questo all'interno dell'implementazione personalizzata di UIView, ma mi sfugge (e Google e Apple doc e 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); 
} 
Problemi correlati