2012-03-10 16 views
10

Mi piacerebbe progettare un UIView, che è più grande di un ViewController in Storyboard (iOS 5).Come progettare UIView separato al di fuori di qualsiasi ViewController nello Storyboard?

L'UIView deve essere utilizzato come sottoview di un UIScrollView e quindi essere più grande di qualsiasi mio ViewControllers esistente. Come posso creare un tale UIView in Storyboard e associarlo al mio UIScrollView?

Mi piacerebbe farlo senza i file xib se possibile.

Grazie!

+0

Problema ingannevole, era così facile prima dell'età degli storyboard. –

risposta

20

non vedo altra scelta che usare xibs, ma non è quel fastidioso:

//We have file called "View.xib" in our project. It contains one SINGLE view 
NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil]; 
UIView *view = [xibContents lastObject]; //safer than objectAtIndex:0 

[self.scrollview addSubview:view]; 
self.scrollview.contentSize = view.frame.size; 

Al fine per effettuare connessioni IB è possibile impostare la classe filesOwner nello xib come ViewController e connettersi come al solito.

+1

Si consiglia di dare un'occhiata alla mia domanda/risposta relativa, per quanto riguarda le decisioni di progettazione che possono giustificare che: http://stackoverflow.com/questions/11386111/uiview-outside-of-a-view-controller-in-a-storyboard – KPM

+0

Soluzione pulita e super veloce. Grazie mille. – androniennn

+0

Aggiunto file .xib stand alone non funzionante per il layout automatico. Sebbene l'intero progetto sia con layout automatico. Come applico il layout automatico con questo file .xib? – shahnilay86

2

È possibile inserire un UIView nella vostra ScrollView e direttamente progettare all'interno della viewController del vostro scrollView

+0

Ciao Ugur, il mio UIView è più grande di ScrollView, quindi la maggior parte dei controlli sarebbe al di fuori dell'area attualmente visibile. – AlexR

+0

Than xibs può essere l'unica soluzione per progettarlo in un costruttore di interfacce –

1

Ho trovato il modo di modificare la vista aggiunta alla scena (essendo allo stesso livello di gerarchia di ViewController).

Sfortunatamente è da hackish tipi di azioni. La mia versione Xcode è Version 4.5.2 (4G2008a). L'ho provato nel progetto reale e nel nuovo progetto vuoto.

L'idea di base è che Xcode abbia la possibilità di modificare tali viste esterne, purtroppo questa modalità non si attiva direttamente.

Nel metodo che ho trovato è necessario disporre di 2 livelli di gerarchia all'interno della vostra vista esterna:

 
Scene 
|- VC 
    |- View 
|- ExternalView 
    |- SubView1 
     |- SubView2 
  • Poi goto Document Outline pannello
  • trovare SubView2 nell'albero della scena
  • doppio clic su di esso

apparirà l'area di modifica e il suo c gli straordinari saranno salvati nei dati dell'utente del progetto, quindi puoi spostarlo in un posto più adatto se lo desideri, e la prossima volta che aprirai lo storyboard in IB sulla macchina sarà lì. Anche se penso ad altre macchine, dovrai farlo di nuovo (non l'ho provato).

+0

Hai trovato un modo per farlo in Xcode5? – MathewS

Problemi correlati