Wrong Forum Blog
Connettiti o Registrati a Wrong

Guida XCODE Creare una vista (view) utilizzando il codice

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Guida XCODE Creare una vista (view) utilizzando il codice

Messaggio Da andre il Sab Ago 13, 2011 1:30 pm

Spiegato nel capitolo precedente che cosa è un ViewController ed a cosa serve, siamo pronti per disegnare la nostra view direttamente da codice.
Per raggiungere il nostro obiettivo è possibile implementare il codice sia nel metodo loadView sia nel metodo viewDidLoad
in quanto non è presente nessun file .xib da caricare. Dato che il
lettore potrebbe usare questo progetto anche nei prossimi esempi
collochiamo il codice nel metodo viewDidLoad.
Il codice relativo alla creazione della view è il seguente:

CGRect frame = CGRectMake(80, 140, 160, 200);
self.view = [[UIView alloc] initWithFrame:frame];
self.view.backgroundColor=[UIColor blackColor];

La prima riga di codice dichiara un frame con il quale andremo ad
inizializzare la nostra view. Come possiamo vedere il frame viene
definito come tipo CGRect che è una struct che contiene un CGPoint e CGSize che a loro volta contengo due variabili di tipo float.
Il frame viene creato utilizzando la funzione CGRectMake che,
come vediamo, prende in input quattro parametri: i primi due indicano il
punto di partenza dal quale iniziare a disegnare la view, mentre gli
altri due indicano la larghezza e la lunghezza che avrà il frame. Per
capire dove andremo ad inserire la nostra view definiamo come l'origine
del sistema di riferimento - il punto (0,0) - il punto in alto a
sinistra dello schermo del nostro dispositivo. Quindi, nel nostro caso,
la view verrà disegnata spostandosi di 80 pixel sull'asse x e 140
sull'asse y.

Nella seconda linea di codice non facciamo altro che inizializzare la
view con il frame creato precedentemente. Probabilmente l'attenzione di
qualche lettore sarà caduta su self.view chiedendosi il
significato di questo costrutto. Un'altra domanda che il lettore può
farsi è il perchè nel file header del ViewController non viene
dichiarata nessuna view, ma compilando il codice non emerga nessun
errore.
Rispondendo prima alla seconda domanda, possiamo dire che la classe UIViewController discende direttamente da UIView e dato che UIView contiene una dichiarazione di una view, eriditando la classe ereditiamo anche questa dichiarazione.
Per accedere alla view si usa il costrutto self che indica che vogliamo la view di quest'oggetto. Per capirsi, il costrutto self ha lo stesso significato del costrutto this in molti linguaggi di programmazione come per esempio il Java.

Nella terza linea di codice andiamo ad accedere alla proprietà backgroundColor della vista e gli associamo il colore blu.

Se adesso andiamo ad aprire il file di implementazione del delegate troviamo la seguente linea di codice:

[window addSubview:viewController.view];
Questa linea di codice ha il compito di sovrapporre la view, che abbiamo
creato nel ViewController, alla window dell'applicazione.
E' possibile ultilizzare il metodo addSubView non solo
con view ma anche con gli altri elementi UI come pere sempio UILabel e
UIButton, dato che derivano tutti dalla super classe UIView.
E' importante notare che il sistema di riferimento varia a seconda della view in cui applichiamo il metodo addSubView. Infatti se proviamo ad aggiungere, nel delegate, il seguente pezzo di codice:

CGRect frame1 = CGRectMake(0, 0, 70, 70);
UIView * view1;
view1 = [[UIView alloc] initWithFrame:frame1];
view1.backgroundColor=[UIColor redColor];
[viewController.view addSubview:view1];

Vedremo che viene disegnata un'altra view più piccola ubicata
nell'origine della view del ViewController e non nell'origine della
window.
Se dunque si vuole disegnare la view nell'origine o si esegue il metodo addSubView sulla window oppure si modificano i primi due parametri di CGRectMake inserendo dei valori negativi.
Per rimuovere una view dallo schermo basterà scrivere la seguente linea di codice:

[nomeView removeFromSuperView];

_________________
_________________________________________________________________________________
LINK VELOCI:
HOME
NARUTO STREAMING
ANGOLO CUCINA
PS3 GAMES
IPHONE NEWS E HELPS
GLEE STREAMING
GOSSIP GIRL STREAMING
TELEFILM STREAMING
_________________________________________________________________________________
avatar
andre
Admin
Admin

Maschile Messaggi : 1791
Wrong Points : 2514
Reputazione : 7
Data d'iscrizione : 06.12.10
Età : 24

Personaggio GDR
Nome del personaggio: Zeod
Livello: 1
Esperienza:
6/100  (6/100)

Vedi il profilo dell'utente http://wrong.forumattivo.it

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum