• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#013 – Disegnamo una vista da codice

By Redazione | on 30 Novembre 2009 | 3 Comments
Senza categoria

T013_IS Oggi metteremo da parte Interface Builder e daremo spazio ad un po’ di codice. Quello che faremo sarà semplicemente disegnare una vista all’interno della nostra applicazione tramite Objective-C sfruttando la funzione CGRectMake. La posizione della vista sarà settata via codice così come la sua dimensione (larghezza per altezza).

Impareremo quindi ad utilizzare alcune proprietà geometriche delle UIView offerte dal linguaggio di programmazione Objective-C. Prima di cominciare a lavorare su Xcode vediamo cos’è e com’è fatta una struttura CGRect, usata per rappresentare la posizione e le dimensioni di un rettangolo in Objective-C. Partiamo dalla definizione presa dalla documentazione ufficiale Apple, CGRect viene così definita:

struct CGRect {
      CGPoint origin;
      CGSize size;
};
typedef struct CGRect CGRect;

Origin, ovvero il punto di origine, è composto dalle coordinate del vertice superiore sinistro del rettangolo, mentre size rappresenta le dimensioni del rettangolo stesso (larghezza e altezza).

CGPoint e CGSize sono a loro volta delle strutture formate rispettivamente da “CGFloat x – CGFloat y” (che si usano per indicare le coordinate di un punto, quello di origine del rettangolo nel nostro caso) e “CGFloat width – CGFloat Height” (per indicare larghezza e altezza).

Per creare una struttura CGRect dovremmo usare la funzione CGRectMake() che è definita come segue:

CGRect CGRectMake{
      CGFloat x,
      CGFloat y,
      CGFloat width,
      CGFloat height
};

Vedremo tra poco come si usa nella pratica. Analizziamo prima le dimensioni di una finestra del nostro iPhone. Le dimensioni massime utilizzabili sono 320 x 480 pixel (L x H). Dobbiamo tenere però conto della Status bar che toglie 20 pixel all’altezza. Eventualmente possiamo comunque nascondere la status bar via codice tramite l’istruzione:

[UIApplication sharedApplication].statusBarHidden = YES;

Potremo così creare applicazioni a pieno schermo e sfruttare quindi le dimensioni massime disponibili.

La figura seguente mostra in modo chiaro le dimensioni dello schermo dell’iPhone:


t013_01

Iniziamo con il nostro progetto. Apriamo Xcode, selezioniamo un nuovo progetto e dall’elenco dei template disponibili scegliamo “Windows-based Application”.

Diamo un nome alla nostra applicazione, ad esempio “codeView”, scegliamo quindi dove salvare e proseguiamo.

Apriamo il file “codeViewAppDelegate.h” e inseriamo il seguente codice:

#import 

@interface codeViewAppDelegate : NSObject  {
        UIWindow *window;
	UIView *myView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UIView *myView;

@end

Non abbiamo fatto altro che aggiungere un oggetto di tipo UIView chiamato myView, ovvero la vista che disegneremo via codice nel file di implementazione. Abbiamo inoltre dichiarato la sua property, in modo da poter utilizzare senza problemi tutte le sue proprietà che ci serviranno nel progetto.

Salviamo, apriamo il file “codeViewAppDelegate.m” e modifichiamo il codice come segue:

@synthesize window, myView;

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
	[UIApplication sharedApplication].statusBarHidden = YES;
	window.backgroundColor= [UIColor redColor];

	CGRect frame = CGRectMake(80, 140, 160, 200);
	myView = [[UIView alloc] initWithFrame:frame];
	myView.backgroundColor=[UIColor blueColor];
	[window addSubview:myView];

        [window makeKeyAndVisible];
}

Analizziamo il codice. Prima di tutto abbiamo deciso di nascondere la status bar tramite l’istruzione [UIApplication sharedApplication].statusBarHidden = YES; abbiamo quindi modificato la proprietà backgroundColor della windows e abbiamo creato una struttura di tipo CGRect, chiamata frame, tramite la funzione CGRectMake con le seguenti caratteristiche: coordinata x= 80, coordinata y=140, larghezza=160 e altezza=200 pixel. Abbiamo quindi creato la vista myView allocandola in memoria e inizializzandola con il frame appena creato. Abbiamo modificato la proprietà backgroundColor anche della vista e l’abbiamo infine caricata nella finestra.

Salviamo e clicchiamo su “Build & Run” per vedere la nostra vista blu disegnata all’interno della window rossa nella posizione desiderata. I punti delle coordinate dell’origine del rettangolo (angolo superiore sinistro) sono stati da noi scelti in modo che la view fosse perfettamente al centro della nostra finestra, ma voi potete sperimentare e fare altre prove ottenendo configurazioni differenti da quella proposta. Il risultato è mostrato in figura qui sotto con le indicazioni dell’origine e delle misure della View:


T013_02

Share this story:
  • tweet

Tags: cgrectObjective-cprogrammazionesdkTutorial PraticiXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment
  • Xcode-project-generator: uno script per creare velocemente progetti Xcode

    21 Ottobre 2014 - 1 Comment

Author Description

3 Responses to “T#013 – Disegnamo una vista da codice”

  1. 15 Dicembre 2009

    iphone dev ssh -www.sens2.noblogs.org « Sensperiodit’s Blog

    […] http://www.devapp.it/wordpress/t013-disegnamo-una-vista-da-codice.html […]

  2. 26 Febbraio 2010

    UILabel – Guida completa all’uso. | devAPP

    […] x,y e che ha una larghezza pari a width pixel ed un’altezza di height pixel. (Trovate qui su devAPP un tutorial fatto veramente […]

  3. 28 Maggio 2011

    Mitch

    Ciao, io ho seguito esattamente la procedura ma l’app non funziona. Quando lancio il simulatore mi si apre l’app ma mi rimane la schermata bianca… Forse ho qualche impostazione “sballata dell’SDK”?

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO