14

Ho uno strano che non riesco a risolvere. Attualmente sto lavorando all'aggiornamento della mia app su iOS7. Tutto questo ha funzionato su iOS6. È un'app universale e quindi utilizza gli stessi file xib. Tuttavia, l'iPad utilizza UISplitViews su alcuni. Come ho detto, tutto questo ha funzionato su iOS6 oh, tutto funziona anche su iPhone.UISplitView con UITabbar

Il problema è una barra grigia nella parte inferiore. Ho modificato la barra delle schede in modo che fosse opaco per spostare le viste correttamente, in quanto avevo un'interfaccia utente ridotta alla fine delle visualizzazioni e passata sotto la barra delle schede, sviata lì. Ma se lo metto di nuovo in una barra traslucida, va sotto ma è stirato correttamente. se non lo faccio, aggiunge una barra. Altre schede funzionano correttamente quando NON si utilizza splitview.

UISplitviewController viene aggiunto a livello di programmazione.

Vedere l'immagine allegata per una descrizione migliore.

The grey bar is between my splitview and tabbar

questo ho provato:

  • Aggiunto AutoResize su SplitView
  • xib Controllato per subviews nei splitviews ad avere auto ridimensionare
  • provato a forzare SplitView essere limiti dello schermo
  • Clip rimosse ai limiti su tutte le viste
  • Rimuovi d AutoResize subviews

Tutte le idee sarebbe stato accolto.

Grazie a tutti.

UPDATE:

impostare il colore di sfondo del uisplitview, lo fa colorare la barra nera. Quindi la prospettiva uisplit si sta decisamente allungando.

+0

Ciao MashDup, sto cercando di implementare i controller Splitview con schede. Puoi guidarmi come può essere fatto. –

risposta

30

I sottoclasse UISplitViewController e ho aggiunto la riga in basso per viewDidLoad e che ha risolto la linea grigia.

self.extendedLayoutIncludesOpaqueBars = YES; 
+1

fantastico, grazie. Ho letto questo e incappato in questa pagina che ha aiutato di più. buon riferimento per chiunque abbia problemi con le visualizzazioni. http://www.brianjcoleman.com/ios7-weve-got-a-problem/ – mashdup

+3

Puoi impostare questa proprietà anche direttamente nel tuo file .xib senza sottoclassi ... ci sono 3 estensioni che puoi configurare. – konran

+1

+1 per avermi messo sulla strada giusta; per ragioni sconosciute nel mio caso, avevo bisogno di controllare una delle altre estensioni per sbarazzarmi della barra grigia. – mvds

5

Credo di aver trovato una soluzione alternativa per voi. Ho avuto lo stesso identico problema, soprattutto perché stiamo entrambi facendo qualcosa contro le Linee Guida di Apple che stanno avendo uno SplitViewController annidato all'interno di un controller Tabbar (SplitView dovrebbe essere la vista root). Questo è andato bene in iOS 5/6, ma ora in iOS 7 ci sono troppi effetti collaterali per raggiungere questo obiettivo.

Il motivo per cui la vista si allunga completamente quando si imposta la barra per essere traslucido è perché la barra non viene presa in considerazione quando si disegna la vista. Quando si imposta traslucido su falso, viene quindi preso in considerazione la vista e vedrete quella barra grigia lì perché questa è la vostra visione che fa finta che ci sia una tabbar nella parte inferiore dello schermo.

E come sempre, l'altezza di SplitViewcontroller non può essere modificata, in quanto è determinata dall'altezza della finestra visibile.

Ho provato tutto ciò che hai fatto e poi alcuni. La vera soluzione è venuta dall'uso di un controller Split View di terze parti.

Si consiglia di passare a https://github.com/mattgemmell/MGSplitViewController. Questo controller della vista divisa è in realtà una vista ampia con viste del contenitore che vivono al suo interno. Per questo motivo, si evitano tutti gli effetti collaterali derivanti dal posizionamento di un controller della vista diviso in una barra delle schede.

Se questo non galleggiare la vostra barca, è possibile creare la propria soluzione, che segue la stessa idea di avere uno UIViewController con due punti di vista del contenitore in esso contenuti, anche se le persone che stanno dietro MGSplitViewController fatto un buon lavoro di già.

Questo era l'unico modo in cui ero in grado di risolvere questo problema, fammi sapere se trovi un'alternativa.

+0

Accettando la tua risposta e sì, ho provato MGSplitViewController. Alla fine non ci sono andato. La soluzione per me per consentire la barra delle schede traslucido e regolare le parti della vista che ne avevano bisogno. Stranamente, le tabelle si adattano di conseguenza. Grazie per la risposta però: D – mashdup

+0

La mia soluzione era quella di rimuovere la linea in cui stavo impostando "traslucido" su NO, ora il mio splitViewController personalizzato all'interno di un tabBarController funziona correttamente. Grazie! – quarac

0

per il controllore che è la vista di dettaglio UISplitViewController basta fare questo:

-(UITabBarController*)tabBarController{ 
    return nil; 
} 
2

Invece di creare una sottoclasse per UISplitViewController, ho solo aggiunto questo codice del mio padrone viewDidLoad:

self.splitViewController?.extendedLayoutIncludesOpaqueBars = true 
Problemi correlati