2014-07-21 8 views
8

Quindi ecco il problema che sto cercando di risolvere.UIView vs Container View

In ogni viewController sto cercando di inserire annunci e gli elementi di controllo effettivi. Ho terminato un paio di tutorial su raywenderlinch.com per capire come le persone inseriscono professionalmente gli annunci nella loro app. Hanno usato UIViews per avere due viste sotto mainview di view controller. Quindi ho capito perfettamente che uno subview tiene gli annunci e un altro tiene i contenuti delle app. se l'annuncio è caricato, riprendi lo schermo o lascia che l'altra vista abbia tutta l'area disponibile.

Dopo essere tornato a xcode ho iniziato a programmare il modo in cui ho imparato lì. ma quando stavo lasciando lo UIView sullo storyboard, ho visto containerView, che penso non fosse presente quando il tutorial è stato scritto.
Quindi sono qui per chiedere sia l'approccio sia i loro pro e contro.
Quindi in pratica il suo UIView vs ContainerView. Quale modo dovrei fare, e perché?
Qualsiasi aiuto sarebbe molto apprezzato.

+1

spiegazione massiccia! -> http://stackoverflow.com/a/23403979/294884 – Fattie

+0

@JoeBlow - Bel esempio di iniziare una scena, * ma * Non vedo come quel collegamento risponda alla domanda di perché/quando utilizzare UIContainerView. IMHO, quella "vista del contenitore" di primo livello potrebbe essere anche una normale "vista".Come spiegato nella seguente risposta, "si utilizza UIContainerView quando è necessario incorporare * un altro controller di visualizzazione *". Quindi, a meno che la scena non abbia bisogno di più controlli ** controller **, UIContainerView non è necessario. – ToolmakerSteve

risposta

1

Se si vede in dettaglio questa vista contenitore del tipo di classe UIView. Per ottenere le informazioni sul motivo per cui abbiamo bisogno di containerView dovresti vedere sotto la porzione

In molti modi, un controller di visualizzazione contenitore è proprio come un controller di visualizzazione del contenuto. Gestisce visualizzazioni e contenuti, coordina con altri oggetti nella tua app e risponde agli eventi nella catena di risposta. Prima di progettare un contenitore, è necessario avere già familiarità con la progettazione dei controller di visualizzazione del contenuto. Le domande di progettazione in "Creazione di controller di visualizzazione del contenuto personalizzato" si applicano anche durante la creazione di contenitori.

per maggiori dettagli sulla visualizzazione contenitore goto link Ma prima di cominciare si dovrebbe avere una comprensione di

e inoltre è possibile controllare this tutorial per come utilizzare la vista del contenitore.

Così puoi andare per entrambi gli approcci. Spero che questo ti possa aiutare. codifica felice :)

+0

Non risponde alla domanda. La domanda riguarda perché utilizzare una vista contenitore invece di una normale UIView, dato che * qualsiasi * vista è in grado di contenere altre viste. Per essere utile, è necessario chiarire cosa può fare una vista container, che una vista normale non può fare. (Ma contiene collegamenti che potrebbero essere utili a qualcuno, quindi non ho fatto un downvote, anche se non risponde alla domanda.) – ToolmakerSteve

22

È possibile utilizzare UIView quando si dispone di una vista e non è necessario disporre di un controller di visualizzazione dedicato per creare e gestire le interazioni al suo interno.

Dalla UIView pagina aiuto:

oggetto UIView rivendica una regione rettangolare del suo racchiude superview (padre nella gerarchia della vista) ed è responsabile di tutti i disegni in quella regione ...

struttura semplificata: YourViewController--- (ha) --->UIView


È possibile utilizzare UIContainerView quando è necessario incorporare un altro controller della vista in quello che hai già.Il controller di visualizzazione incorporato ha il compito di restituire una vista per la regione occupata da UIViewContainer. Pertanto, il tuo UIContainerView sa quale controller di visualizzazione utilizzare per il rendering di UIView all'interno della regione che occupa.

Dalla pagina aiuto UIContainerView:

Container View definisce una regione in vista sottografo di un controller della vista che può includere un controller di vista del bambino.

struttura semplificata: YourViewController--- (ha) --->SubViewController--- (ha) --->UIView

Quello SubViewController restituisce una vista e gestisce i suoi eventi.

3

Come risposta alternativa, è possibile considerare il caso d'uso al posto delle differenze tecniche. Ad esempio: Perché utilizzare una vista container?

Un uso comune per le viste contenitore è il riutilizzo (condivisione) di una vista, direttamente nello storyboard. In precedenza, il riutilizzo di una vista richiedeva la creazione di un file "xib" separato e l'aggiunta programmatica di tale vista quando veniva caricato il controller di visualizzazione.

example use case of a container view

L'immagine sopra è da this estremamente semplice, facile da seguire guida che ti guida attraverso come impostare una vista contenitore che è condivisa tra 2+ controller di vista.

Alcuni altri pensieri su quando utilizzarlo:

  • Una barra di navigazione è parte di un UINavigationController, which is a container view controller. Quindi, se volessi creare un'alternativa personalizzata, probabilmente utilizzeresti una vista container.
  • Un contenitore può essere utile in qualsiasi momento in cui si desidera mostrare temporaneamente una vista complessa sopra il VC corrente ma non si può/non si vuole presentare un altro VC modalmente. Questo approccio consente comunque di creare quella visualizzazione temporanea nel generatore di interfacce, di impostare vincoli di layout automatici per esso, ecc.
  • Ho anche trovato un guide che spiega che esiste un modo per cambiare le diverse viste del contenitore in base alla situazione, consentendo al VC avere sottosezioni che sono molto dinamiche, ma senza doverle costruire a livello di codice. Un quadro, da quella guida, esibendo quello che mi riferisco a:

using multiple container view options

Speriamo che questo aiuta le persone che stanno cercando di capire quando una vista contenitore applica a loro. Se hai altri casi d'uso di esempio, ti preghiamo di modificarli/aggiungerli o lasciarli nei commenti!

Problemi correlati