• 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#029 – Muoviamo una pallina tramite l’accelerometro

By Francesco Burelli | on 1 Aprile 2010 | 43 Comments
Senza categoria

L’accelerometro è uno dei componenti più importanti e di successo del nostro iPhone / iPod Touch (e presto iPad), ad oggi sfruttato in molte applicazioni e videogiochi presenti in App Store. Se vi accingete, infatti, a programmare giochi per iPhone, sicuramente non potete sottovalutare questo componente hardware. Per questo motivo, nel tutorial di oggi, vi guiderò all’uso (semplicissimo) di questo fantastico strumento creando una piccola applicazione che, sfruttando questo componente, vi permetterà di muovere una pallina a seconda dell’inclinazione che darete al vostro dispositivo mobile.

Iniziamo col progettare la nostra piccola applicazione, essendo essa molto semplice ci servirà:

  • un componente che ci dia l’inclinazione, quindi l’accelerometro. Classe: UIAccelerometer;
  • una classe che gestisca il movimento della pallina;
  • la pallina 🙂

Piccola nota: quasi mai si troverà un programma come Interface Builder che ti costruisce l’interfaccia grafica con il drag&drop quindi, in questo tutorial, creeremo la grafica via codice, il che è più divertente e molto più “dinamico” a mio parere.

Apriamo Xcode e creiamo un nuovo progetto “Window-Based Application”.

Iniziamo con una cosa banale, inseriamo l’immagine della nostra pallina.
Potete usare la mia, che trovate giusto qui sopra, oppure potete crearne una voi, molto più carina!
Inseriamola nella cartella “Resources”.



Creiamo la nostra classe per la gestione del movimento della pallina, quindi aggiungiamo una nuova classe nella cartella “Classes” figlia di UIViewController (quale classe migliore):



Iniziamo a scrivere nel file di intestazione .h (l’header)  i campi che ci serviranno: l’immagine della pallina e una variabile che ci servirà per impostare la sensibilità del nostro accelerometro:



Passiamo quindi al file di implementazione (.m) di questa classe. Notiamo molti metodi già costruiti per noi da Xcode, anche se gran parte di loro sono racchiusi in tag di commenti. Leggendo si può capire a cosa servano, nel nostro caso useremo il metodo -(void)loadView che viene chiamato non appena viene richiesto di visualizzare la view di questo UIViewCotroller. Eliminiamo quindi i tag di commento per questo metodo e scriviamo il codice per inizializzare la vista di questa nostra classe:

- (void)loadView {
	// creiamo l'immagine della pallina
	pallinaView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pallina.png"]];

	// creiamo la vista del nostro UIViewController
	UIView *controllerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

	// aggiungiamo la pallina alla nostra vista (di modo che sia visibile)
	[controllerView addSubview:pallinaView];

	// impostiamo la vista creata, come la vista di questo UIViewController
	[self setView:controllerView];

	// rilasciamo l'oggetto che ormai non ci serve più
	[controllerView release]; // notare che l'oggetto rimarrà "vivo" perchè il nostro controller ha fatto un "retain" quando abbiamo fatto "setView:"

Visto che abbiamo allocato la pallinaView e non rilasciata, ricordiamoci di farlo nel dealloc:

- (void)dealloc {
    [pallinaView release];
    [super dealloc];
}

La grafica è fatta! Molto semplice vero? Non è necessario scomodare Interface Builder.

Ora passiamo al cuore dell’applicazione: l’accelerometro! Come si può leggere dalla documentazione Apple, per richiamarlo basta scrivere [UIAccelerometer sharedAccelerometer] e usare uno dei due metodi elencati.

Sempre nel loadView attiviamo l’accelerometro in questo modo:

// attiviamo l'accelerometro
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.001];

// impostiamo la sensibilità a 4
sensibilita = 4;

}

Impostando il delegato (colui che riceverà i dati dell’accelerometro) a self e compilando a questo punto, ci verrà restituito un warning, per risolvere, basterà correggere l’header in questo modo:



Ora dobbiamo aggiungere il metodo del delegato, cercando nella documentazione Apple eccolo qua:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;

Ogni volta che l’accelerometro avrà delle informazioni da darci, ce le passerà qui, e noi le sfrutteremo per spostare la pallina.

Per il movimento ho scritto un semplice algoritmo che mi limito a riportare commentato, è molto semplice. Calcola semplicemente la posizione che avrà la pallina e se dovesse uscire dallo schermo la “blocca”. Eccovi il codice:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
	// ricaviamo lo spostamento che avrà la pallina nelle due direzioni
	CGPoint spostamento = CGPointMake(acceleration.x * sensibilita, acceleration.y * sensibilita * -1);

	// calcoliamo se la pallina, con tale spostamento, finirà fuori dallo schermo
	CGRect pallinaFrame = pallinaView.frame;
	// impostiamo le coordinate che dovrebbe avere
	pallinaFrame.origin.x += spostamento.x;
	pallinaFrame.origin.y += spostamento.y;
	// se la pallina uscisse a sinistra
	if (pallinaFrame.origin.x < 0)
            pallinaFrame.origin.x = 0;
        // se uscisse a destra
        if (pallinaFrame.origin.x > (pallinaView.superview.frame.size.width - pallinaFrame.size.width))
	    pallinaFrame.origin.x = (pallinaView.superview.frame.size.width - pallinaFrame.size.width);
	// se uscisse in alto
	if (pallinaFrame.origin.y < 0)
            pallinaFrame.origin.y = 0;
        // se uscisse in basso
        if (pallinaFrame.origin.y > (pallinaView.superview.frame.size.height - pallinaFrame.size.height))
            pallinaFrame.origin.y = (pallinaView.superview.frame.size.height - pallinaFrame.size.height);

	// sposto la pallina
	pallinaView.frame = pallinaFrame;

}

Tutto a posto, ora la classe dovrebbe funzionare a dovere. Ultima cosa da fare è che qualcuno ora la chiami ‘sta classe!

Andiamo quindi in nomeprogettoAppDelegate.h e importiamo la nostra classe:



E implementiamo a dovere:



Ricordatevi, infine, di rilasciare l’oggetto nel dealloc!

Potete scaricare il mio progetto completo da questo link.

Share this story:
  • tweet

Tags: accelerometroanimazioniObjective-cTutorial PraticiUIAccelerometerXcode

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

  • 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
  • Xcode Tips & Tricks: Gestione del filesystem, un progetto più versioni, plugin

    12 Novembre 2013 - 4 Comments

Author Description

43 Responses to “T#029 – Muoviamo una pallina tramite l’accelerometro”

  1. 1 Aprile 2010

    spinoricky

    Complimenti per il tutorial! Mi piace!

  2. 2 Aprile 2010

    luca

    Ottimo: esauriente, semplice ed essenziale

  3. 6 Aprile 2010

    hacku

    Ciao.. io non posso provarlo perchè non possiedo ancora un iphone (e nel simulator come tutti sapete non funziona l’accelerometro)
    volevo sapere se si comportava come quelle dei giochi tipo labyrinth, cioè che sfrutta la fisica diciamo.
    comunque grazie, è interessante questo tutorial!

  4. 7 Aprile 2010

    Marcello

    Ciao
    Ma non dovrebbe funzionare anche in emulazione con i tasti cmd -> e cmd <- ?
    Mi aspettavo di vedere la pallina che cascava a picco…
    grazie
    Marcello

  5. 29 Aprile 2010

    Matteo

    scusatemi, ma nel tut originale sembra che venga creata una nuova classe che nel progetto scaricato nn esiste, scusate ma nn l’ho capita.. per quello nn mi esce l’ex…

  6. 29 Aprile 2010

    Francesco Burelli


    Matteo:

    scusatemi, ma nel tut originale sembra che venga creata una nuova classe che nel progetto scaricato nn esiste, scusate ma nn l’ho capita.. per quello nn mi esce l’ex…

    Ciao, la nuova classe creata è “PallinaViewController” sottoclasse di “UIViewController” e nel progetto è presente.
    Spiega meglio cosa non hai capito.

  7. 29 Aprile 2010

    Matteo

    ciao, nel tut, alla schermata “Schermata-2010-03-31-a-10.50.10-300×258.png” sembra che andate a integrare l’app con una nuova sottoclasse cosa che io nn faccio.
    o meglio la mia app si chiama pallina e scrivo tutto nelle classi che mi genera di default.

  8. 29 Aprile 2010

    Francesco Burelli

    Infatti, viene inserita una nuova classe, cosa indispensabile. Di default l’unica classe presente è “nomeprogettoAppDelegate” che è il delegato dell’applicazione. Volendo si potrebbe scrivere il codice lì, ma, a mio parere, è controproducente. Infatti Apple consiglia di non usare la window per qualsiasi vista, ma di usare un’altra vista disposta sopra la window, ma per inserire una vista (UIView) conviene usare un UIViewController.

    Se vuoi puoi scrivere il tutto nel file “nomeprogettoAppDelegate”, ma quando ti ritroverai con applicazioni grosse troverai comodo scrivere il codice su più file.

    E comunque ripeto che se vuoi visualizzare una qualsiasi cosa sulla window (come in questo caso la pallina) devi creare un UIViewController nel quale inserire tutto e attraverso quello gestire gli oggetti di quella vista.

    Spero di essermi spiegato.

  9. 30 Aprile 2010

    Matteo

    no probabilmente sono io ottuso, anzi sicuramente…
    in breva se io creo un nuovo progetto nella cartella classes mi crea:
    nomeprogappdelegate.h
    nomeprogappdelegate.m
    e
    nomeprogviewcontroller.h
    nomeprogviewcontroller.m

    e fin qui c siamo, ma se poi io creo un’altra classe tipo “test” lui nella cartella classe mi crea:

    test.h
    test.m

    cio vuol dire ceh se io creo una nuova classe avro nella cartella 6 files….
    se vuoi scaricate il vs progetto nn ha 6 files ma ne ha solo 4, cosa vuol dire?
    ripeto nn sono qua a criticare, ma voglio solo capire come funziona.
    grazie in anticipo per la risposta.
    M.


    Francesco Burelli:

    Infatti, viene inserita una nuova classe, cosa indispensabile. Di default l’unica classe presente è “nomeprogettoAppDelegate” che è il delegato dell’applicazione. Volendo si potrebbe scrivere il codice lì, ma, a mio parere, è controproducente. Infatti Apple consiglia di non usare la window per qualsiasi vista, ma di usare un’altra vista disposta sopra la window, ma per inserire una vista (UIView) conviene usare un UIViewController.
    Se vuoi puoi scrivere il tutto nel file “nomeprogettoAppDelegate”, ma quando ti ritroverai con applicazioni grosse troverai comodo scrivere il codice su più file.
    E comunque ripeto che se vuoi visualizzare una qualsiasi cosa sulla window (come in questo caso la pallina) devi creare un UIViewController nel quale inserire tutto e attraverso quello gestire gli oggetti di quella vista.
    Spero di essermi spiegato.

  10. 30 Aprile 2010

    Francesco Burelli

    Facciamo un po’ di ordine:
    Creando un nuovo progetto nella cartella “classes” avrai solo 2 file: “nomeprogettoAppDelegate.h” e “nomeprogettoAppDelegate.m” che è una classe, più precisamente la classe delegate dell’applicazione (vedi UIApplicationDelegate nella documentazione Apple).
    Questa classe non è adatta per scriverci sopra cosa deve fare la pallina, quindi si crea una nuova classe in questo caso io ho creato una classe sottoclasse di UIViewController e l’ho chiamata PallinaViewController ma potevo anche chimarla ControllerDellaPallina…

    Ogni classe ha il suo file header (.h) e il file di implementazione (.m) quindi ovviamente avrai 2 file per classe. Nel progetto del tutorial ci sono 4 file, 2 per la classe creata in automatico dal progetto e 2 per la mia nuova classe dove ho descritto il comportamento della pallina.

  11. 30 Aprile 2010

    Matteo

    che ti avevo detto prima?? che sono ottuso….
    in effetti hai ragione, insistevo con i files perche ho selezionato“View-Based Application” invece che “Window-Based Application”, e in effetti il primo ne crea di default 4 come ti avevo descritto, ma il progetto da voi creato è di “Window-Based Application”…
    chiedo scusa….
    M.

  12. 1 Maggio 2010

    Francesco Burelli

    aaah ok non ti preoccupare, sono sempre comunque disponibile nel aiutarvi.

    Ciao!

  13. 1 Maggio 2010

    intenzionato a diventare programmatore

    scusate quando tento di inserire lo sfondo dove far muovere la pallina non mi visualizza lo sfondo.
    La pallina si vede ma lo sfondo che è molto grande no mi potreste aiutare?

  14. 2 Maggio 2010

    Francesco Burelli

    Come hai inserito lo sfondo?
    Io ti consiglio: nel “-(void)loadView” crea una UIImageView con un’immagine esistente nella cartella “Resources” e poi aggiungi questo oggetto nella UIView che ho già creato io ([controllerView addSubview:laTuaUIImageView]).

  15. 2 Maggio 2010

    intenzionato a diventare programmatore

    Io ho inserito lo sfondo nello stesso modo della pallina.
    Ora provo il tuo metodo

  16. 2 Maggio 2010

    intenzionato a diventare programmatore

    grazie ci sono riuscito

  17. 2 Maggio 2010

    intenzionato a diventare programmatore

    e se dovessi spostare la pallina nella strada che deve seguire dovrei
    1)mettere l’ immagine della strada
    2)nel punto //sposto la pallina dovrei mettere : pallinaView.frame = stradaFrame;

  18. 2 Maggio 2010

    intenzionato a diventare programmatore

    ?????

  19. 4 Maggio 2010

    Francesco Burelli

    Attento: leggi nella documentazione che cosa è il frame…
    Se metti uno sfondo con disegnata una strada… Bhe sarà difficile far rispettare quest’ultima dalla pallina. Piuttosto inserisci dei “muri” e con degli “if” puoi controllare le collissioni con le viste inserite.

    Ma il tutto e piuttosto laborioso ed è la strada sbagliata: qui ci addentriamo nel mondo dei videogiochi quindi io consiglio di impararsi un po’ di OpenGL e poi creare tutti i giochini che ti vengono in mente.

  20. 4 Maggio 2010

    mac user

    grazie.Dove posso trovare questa documentazione?

  21. 4 Maggio 2010

    Francesco Burelli

    Intendo la documentazione Apple… da Xcode Help > Developer Documentation …
    Perché scrivere “pallinaView.frame = stradaFrame” è concettualmente molto sbagliato per quello che intendi fare, per questo ti consiglio vivamente di informarti su cosa sia il frame.

    Per quanto riguarda l’OpenGL invece esiste in rete il Red Book (in inglese).

  22. 4 Maggio 2010

    startit

    Scusate, lo so che non è pertinente a quest’area, ma volevo chiedere una cosa a Francesco Burelli…..hai ricevuto per caso la mia email, inviata dal tuo form sul tuo sito ?

    Grazie.
    Scusate di nuovo.
    Saluti.
    Massimo Bonechi.

  23. 21 Maggio 2010

    intenzionato a diventare programmatore

    ho scoperto un metodo per mettere le app nel iphone , ma quando la metto e cerco di aprirla nell’ iphone appare una schermata nera e poi si chiede mi puoi aiutare?

  24. 21 Maggio 2010

    intenzionato a diventare programmatore

    ho scoperto un metodo per mettere le app nel iphone , ma quando la metto e cerco di aprirla nell’ iphone appare una schermata nera e poi si chiede mi puoi aiutare?

  25. 21 Maggio 2010

    Francesco Burelli

    Apple non permette di installare le applicazioni sull’iPhone se non sei iscritto al programma developer e non hai pagato la tassa annuale. Quindi il metodo che hai trovato, ne deduco, è un metodo non “ufficiale”.
    Quindi tiro ad indovinare:
    L’applicazione è scritta in modo sbagliato e crasha appena parte, oppure il tuo metodo per installare le app sull’iPhone non funziona.
    Testa se funziona il metodo con altre applicazioni. In caso usa il debugger per verificare dove crasha l’app.

  26. 21 Maggio 2010

    intenzionato a diventare programmatore

    allora provo con un app completa

  27. 31 Maggio 2010

    intenzionato a diventare programmatore

    vabbe in quel modo no ci sono riuscito ma perchè usando isimulate non funziona?

  28. 31 Maggio 2010

    Francesco Burelli

    Spiacente, in questo non posso aiutarti, ti posso dare la dimostrazione che la mia “app” funziona: vedi qua http://www.youtube.com/watch?v=lgNDLmzPeqM&feature=player_embedded

    di isimulate e simili non so nulla.
    ciao

  29. 31 Maggio 2010

    intenzionato a diventare programmatore

    bello, provo a risolvere

  30. 5 Agosto 2010

    intenzionato a diventare programmatore

    Scusa se scrivo qui e non nel forum ma quando clicco su nuova discussione mi dice che non ho i permessi per farlo O.o
    Comunque quando faccio un progetto opengl es application e faccio buld en run mi esce un quadrato con i colori arcobaleno che va su e giù, mi pui dire come toglierlo?

  31. 10 Settembre 2010

    Luca

    Come fai a vederla sul’iphone?

  32. 11 Settembre 2010

    Francesco Burelli

    Intendi come fare per installare l’app su iPhone? devi acquistare la licenza mi pare di ricordare… (non lo ricordo perché io ho la licenza, non so se puoi senza)
    Altrimenti penso ci siano vie “secondarie”… ma non le conosco

  33. 2 Novembre 2010

    was

    ciao francesco,
    mi da un errore accanto a – (void)loadview
    reimplementation of class “PallinaViewController”

    ho provato anche a copiare tutto il tuo progetto, ma niente…
    grazie in anticipo

  34. 2 Novembre 2010

    Francesco Burelli

    Mi dispiace, dovrei vedere il codice che hai scritto, prova a confrontarlo con il mio di esempio (il progetto completo).

    Dall’errore sembra ci siano due implementazioni di “PallinaViewController” sicuro che nel copia incolla non hai scritto due volte “@implementation PallinaViewController” o che esistano due file PallinaViewController.m? o che il metodo -(void)loadView sia scritto una sola volta? hai chiuso la graffa di quest’ultimo metodo?

    è un errore di sintassi questo, se non vedo il codice posso aiutarti poco, mi dispiace.

  35. 2 Novembre 2010

    was

    ecco appunto, avevo messo due volte @implentation e non me ne ero accorto…l’avevo anche copiato due volte…un fenomeno, in pratica!!
    grazie mille e scusami, ma sono troppo niubbo… :))

  36. 19 Marzo 2011

    Stefano

    ciao, sono un giovane studente che sta cercando di creare le sue prime applicazioni. Come prima cosa volevo complimentarmi con voi con la semplicità e la chiarezza con cui spiegate e gestite il sito devApp comunque volevo chiederti se volessi ridurre il campo d’azione della pallina a direttamente solo una striscia dello schermo,dovrei modificare queste righe del codice:

    ” // ricaviamo lo spostamento che avrà la pallina nelle due direzioni
    CGPoint spostamento = CGPointMake(acceleration.x * sensibilita, acceleration.y * sensibilita * -1);

    // calcoliamo se la pallina, con tale spostamento, finirà fuori dallo schermo
    CGRect pallinaFrame = pallinaView.frame;
    // impostiamo le coordinate che dovrebbe avere
    pallinaFrame.origin.x += spostamento.x;
    pallinaFrame.origin.y += spostamento.y;
    // se la pallina uscisse a sinistra
    if (pallinaFrame.origin.x (pallinaView.superview.frame.size.width – pallinaFrame.size.width))
    pallinaFrame.origin.x = (pallinaView.superview.frame.size.width – pallinaFrame.size.width);
    // se uscisse in alto
    if (pallinaFrame.origin.y (pallinaView.superview.frame.size.height – pallinaFrame.size.height))
    pallinaFrame.origin.y = (pallinaView.superview.frame.size.height – pallinaFrame.size.height);

    // sposto la pallina
    pallinaView.frame = pallinaFrame;”

    giusto?ma come?
    e poi un ultima domanda come dovrei fare per inserire un timer ed un contatore (qui io userei un ciclo ma mi faresti un po di chiarezza)

    GRAZIE!!!!!!!!! 🙂

  37. 5 Aprile 2011

    fabiano

    Intanto grazie per i vostri tutorial sono veramente molto utili!! il codice è sempre molto chiaro ed esaustivo. Sto provando ad aggiungere una funzionalità a questa app ma con scarsi risultati. Vorrei far ruotare l’immagine della pallina in base alla direzione. Avete qlc indicazione da darmi? E’ un giorno intero che sto provando ad implementarla ma niente di niente!!!

  38. 12 Gennaio 2012

    Alessandro

    Scusa, ma per aggiungere altre palline? E’ possibile? e se io volessi implementarlo in un’app, come potrei fare per mettere una navigation bar…forse sono io che sono nostalgico di IB…ma cosi mi viene nero schermo intero e il resto dell’app, una volta aperta la view, viene tagliata fuori! 🙂 help me please!

  39. 13 Gennaio 2012

    Francesco Burelli


    Alessandro:

    Scusa, ma per aggiungere altre palline? E’ possibile? e se io volessi implementarlo in un’app, come potrei fare per mettere una navigation bar…forse sono io che sono nostalgico di IB…ma cosi mi viene nero schermo intero e il resto dell’app, una volta aperta la view, viene tagliata fuori! help me please!

    Una cosa alla volta:
    1. per mettere una navigation bar io ti consiglio di usare una UINavigationController. Però non posso spiegarti in un commento come funziona questa classe.
    2. Inserire più palline è ovviamente possibile, ma presenta un problema molto grosso: programmare l’interazione fra le palline, che non è affatto uno scherzo. Per quanto riguarda il semplice inserimento di più palline basta creare un array di palline e nei metodi delegati dell’accelerometro applicare la legge fisica ciclicamente a tutte le palline dell’array.

  40. 5 Giugno 2012

    Davide

    Come si può calibrare l’iPhone in modo tale da non averlo “in piano” ma leggermente piegato verso l’utente finale?

  41. 6 Giugno 2012

    Francesco Burelli

    #40 la cosa è leggermente complicata in teoria, nella pratica, non troppo. Hai mai studiato geometria? Praticamente tu hai l’accelerazione su 3 assi (x y z) per simulare un’inclinazione iniziale dovresti ruotare lo spazio di un certo angolo in una certa direzione. A livello matematico si fa con una trasformaizione lineare ovvero applicando una matrice…
    Tutti questi paroloni per dire che, PRIMA di usare i valori delle accelerazioni, devi moltiplicarli per un certo fattore e poi usarli, in questo modo otterai l’effetto desiderato.
    Non posso fare calcoli o prove ora, ma ti consiglio di provare a moltiplicare l’asse x o l’asse y per un qualche valore (non grande, minore di 1 se non sbaglio) e vedere l’effetto.

  42. 13 Agosto 2013

    giovanni

    e se volessi aggiornarla per iphone 5?
    anche avendo aggiunto il default….@2x.png e avere modificato nella .xib nell iphone 5 lo schermo è occupato ma la palla va in giu e si ferma come se fosse un iphone 4, nel senso, è come se ci fosse ancora la riga nera sotto

  43. 14 Agosto 2013

    giovanni

    e per aggiungere un eventuale seconda schermata con un semplice bottone che fa partire la schermata con la pallina ? come faccio?

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