2010-07-27 15 views
6

Ho un UIView in un UITabController. E c'è un UITableView in esso.autorizzaizone di vista utente

Quando si attiva la barra di stato della chiamata, non fa nulla e la vista non viene ridimensionata automaticamente.

Presuppone le dimensioni corrette in base al fatto che la chiamata in entrata UIStatusBar sia stata attivata quando l'app viene avviata, ma se lo UIStatusBar viene attivato mentre l'app è in esecuzione, non cambia nulla.

Un'altra vista a schede con un UINavigationController sembra ridimensionare.

Ecco il codice

 
if ([indexPath indexAtPosition:0] == 0 || [indexPath indexAtPosition:0] == 1) { 
     if (!airportChooser) { 
      airportChooser = [[AirportChooserController alloc] init]; 
      airportChooser.targetController = self; 
      airportChooser.view.autoresizesSubviews = YES; 
      airportChooser.view.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
      [airportChooser.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth]; 
     } 
     airportChooser.target = [indexPath indexAtPosition:0]; 
     [self.parentViewController.parentViewController.view addSubview:airportChooser.view]; 
     self.parentViewController.parentViewController.view.autoresizesSubviews = YES; 
     self.parentViewController.parentViewController.view.contentMode = UIViewContentModeRedraw; 
     [self.parentViewController.parentViewController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth]; 
     airportChooser.view.contentMode = UIViewContentModeRedraw; 
     //[airportChooser open]; 
    } 

risposta

13

Si è impostata la maschera di ridimensionamento del UIView correttamente? Puoi impostarlo in Interface Builder nella scheda dimensioni, sono le linee rosse che puoi cliccare.

È anche possibile impostare nel codice utilizzando qualcosa di simile:

[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | 
          UIViewAutoresizingFlexibleHeight]; 

Assicurarsi inoltre che il superview ha fissato autoresizesSubviews su YES.

È possibile trovare ulteriori informazioni a riguardo nello UIView documentation.

+1

Ho fatto entrambe le cose ma ancora senza fortuna Ora sto aggiungendo la vista alla finestra (risolto l'esempio precedente usando il controller di visualizzazione push) e ha lo stesso effetto descritto prima dello Aggiunge la vista nel posto giusto a seconda della posizione sulla barra di stato ma non aggiustare una volta aperto se aggiungo la vista secondaria nell'applicazione ha terminato il lancio funziona bene ma se lo aggiungo in seguito come risultato dell'input dell'utente non lo fa – msaspence

+0

Capo! Mi hai salvato la vita facendomi conoscere una proprietà "autorizza le opinioni"! Stavo affrontando un problema che si stava verificando durante la creazione di sottoview a livello di codice, ma la superview era sullo storyboard. "L'issse era che le sottoview stavano chiedendo di impostare l'autoresizing che mi stava uccidendo male anche dopo averlo impostato correttamente." +1 pollici in su! – Prasanna

0

Mentre la risposta di klaaspeiter ha un senso e in alcuni casi può essere la risposta giusta nel mio caso specifico è stato perché stavo aggiungendo una vista sub alla visualizzazione di un UINavigationController con addSubview invece di pushViewController: Veduta animata: NO;

+0

mentre questo è un modo per aggirare il problema non è una soluzione per quando si desidera utilizzare addSubview come faccio ora :( – msaspence

Problemi correlati