11

Ho un utente UIViewController e una vista corrispondente in un file di pennino. La vista viene aggiunto alla UIWindow direttamente.Interface Builder: Ridimensiona vista da NIB

[window addSubview:customViewController.view]; 

Formati della finestra e la vista sono di default (480x320 e 460x320 corrispondentemente).

Quando creo CustomViewController all'interno del file pennino e controllare "Ridimensiona View From NIB" in IB Attributi scheda tutto funziona bene.

Ma quando creo CustomViewController programmmatically con initWithnibName messaggio la vista non è posizionato sulla finestra in modo corretto. C'è una striscia vuota in basso. La sua altezza è di 20px. Vedo che è a causa dell'offset della barra di stato.

IB gestisce quello con "Ridimensiona visualizzazione da NIB". come emulare che di programmazione?

Sembra che IB utilizzi alcune sottoclassi personalizzate di UIViewController. Quindi la domanda: come è stata implementata "Resize View From NIB"?

risposta

1

Quando voglio fare in modo la vista copre l'intero schermo, faccio qualcosa di simile:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear:animated]; 
    [[self view] setFrame:[[UIScreen mainScreen] bounds]]; 
} 

si sente come un hack, quindi lo faccio solo come ultima risorsa, quando posso' t ottenere il punto di vista di comportarsi altrimenti :)

+0

Provato, ma non funziona per me. Appare la stessa striscia in basso. – alexey

+1

[[vista auto] SETFRAME: CGRectMake (0, 20, 320, 480)]; Questo funziona, ma sembra una sorta di hardcoding. [[UIScreen mainScreen] limiti]] restituisce (0, 0, 320, 480). – alexey

+0

Dovresti invece utilizzare applicationFrame: self.view.frame = {CGPointZero, [UIScreen mainScreen] .applicationFrame.size]}; – Francescu