• 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#003 – Creare una presentazione di foto

By Redazione | on 29 Ottobre 2009 | 25 Comments
Senza categoria

t003_ex In questo breve tutorial vedremo come creare un piccolo programma in grado di far girare automaticamente una presentazione di immagini o foto che scorrono una dopo l’altra in modo automatico.

L’avvio della presentazione sarà gestito da un pulsante UIButton così come il suo arresto.

Per prima cosa avviate Xcode, e create un nuovo progetto, scegliete tra l’elenco dei Template proposti “View-based Application” e andate avanti.

Inserite un nome, ad esempio “Presentazione” per la vostra nuova applicazione, scegliete quindi dove volete salvarla e proseguite.

Si aprirà la schermata principale di Xcode. Tramite “Groups & Files” sulla sinistra aprite la cartella “Classes” e cliccate quindi sul file PresentazioneViewController.h in cui dovete inserire il seguente codice:

#import 

@interface PresentazioneViewController : UIViewController {
      IBOutlet UIImageView *immagine;
      NSArray *array;
}

-(void)avvia:(id)sender;
-(void)ferma:(id)sender;

@end

Questo tipi di files (con estensione .h) servono a dichiarare tutti gli oggetti, le proprietà e i metodi che verranno poi usati nelle nostre applicazioni. Qui ci saranno quindi le sole dichiarazioni, verranno poi definiti i comportamenti nel rispettivo file con estensione .m della classe.

Vediamo il significato di questo breve listato. La prima riga #import serve per importare nel nostro progetto il framework UIKit, grazie al quale ci sarà permesso di usare tutti gli oggetti preconfezionati e offerti da Apple, come i pulsanti, le caselle di testo, le label e via dicendo.

L’istruzione @interface PresentazioneViewController : UIViewController è l’inizio vero e proprio della nostra dichiarazione e UIViewController è la classe parente da cui la nostra nuova classe eredita tutte le proprietà e i metodi. Per ora prendete per buona questa istruzione, spiegheremo in una delle prossime lezioni dedicate all’objective-c il significato e il funzionamento delle classi. Le parentesi graffe servono a raggruppare in un unico blocco più istruzioni di codice, chi conosce il C avrà ben chiaro questo concetto che riprenderemo nelle prossime lezioni.

Troviamo quindi l’istruzione IBOutlet UIImageView *immagine;

IBOutlet indica che questo oggetto sarà collegato ad un oggetto di tipo UIImageView che creeremo con Interface Builder, mentre immagine è il nome del nostro oggetto. Con NSArray *array; invece andiamo a creare l’oggetto che conterrà tutte le nostre immagini, che chiamiamo per semplicità array ed è ti tipo NSArray. Gli array sono dei particolari contenitori simili alle ariabili che però possono contenere al loro interno più valori, identificati e utilizzabili poi grazie ad un indice che va da 0 a n-1, dove n è il numero degli oggetti al suo interno.

Le due istruzioni -(void)avvia:(id)sender; e -(void)ferma:(id)sender; servono a dichiarare i metodi, quindi le azioni, che saranno collegate ai due pulsanti. Uno per avviare la presentazione e l’altro per arrestarla.

A questo punto salvate e aprite il file PresentazioneViewController.m e al suo interno cercate il metodo viewDidLoad che dovrebbe essere commentato e modificatelo come segue:

- (void)viewDidLoad {
      [super viewDidLoad];
      array = [NSArray arrayWithObjects:[UIImage imageNamed:@"1.jpg"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.jpg"],nil];
      [immagine setAnimationImages:array];
      [immagine setAnimationRepeatCount:0];
      [immagine setAnimationDuration:5];
}

Questo metodo esegue il codice al suo interno all’avvio della vista durante l’esecuzione del programma. Noi lo useremo per inserire le immagini nell’array, nel nostro esempio 3, grazie metodo arrayWithObjects di NSArray. Subito dopo viene passato l’array appena riempito all’oggetto immagine che sarà usato per far scorrere le foto. Viene quindi impostato il numero di volte che deve ripetersi la presentazione (0 indica ripetizioni infinite) e il temlo tra il passaggio di un’immagine alla successiva (nel nostro caso 5 secondi).

Tutto questo grazie ai metodi che il nostro oggetto immagine eredita da UIImageView.

A questo punto inserite sotto il codice dei due metodi da passare ai pulsanti che useremo per avviare e arrestare la presentazione:

-(void)avvia:(id)sender{
      [immagine startAnimating];
}

-(void)ferma:(id)sender{
      [immagine stopAnimating];
}

Per quanto riguarda il codice è tutto. A questo punto occorre inserire le immagini nel progetto, nel nostro caso 1.jpg, 2.jpg e 3.jpg, ma potrete ovviamente inserirne altre e con i nomi che preferite, modificando opportunamente il codice sopra. Per farlo trascinate semplicemente nella cartella “Resource” dentro “Groups & Files” i file delle vostre immagini ricordando di spuntare la casella “Copy items into destination group’s folder (if needed)” per copiare i file stessi nel progetto, premete quindi su “Add”, come mostrato in figura qui sotto:


inserimentoImmagini

Ora non resta altro che aprire il file PresentazioneViewController.xib per disegnare l’interfaccia grafica.

Trascinate quindi nella vista una UIImageView e due UIButton. Facendo doppio click sui pulsanti appena inseriti potrete modificarne l’etichetta inserendo Avvia e Ferma, o quello che preferite.

Cliccate quindi su File’s Owner e dalla finestra “Presentazione View Controller Connection” collegate immagine con la UIImageView appena inserita e i due metodi “Avvia” e “Ferma” con i due pulsanti dell’interfaccia grafica, facendo attenzione a selezionare “Touch UP Inside” quando rilasciate il mouse. Dovete ottenere una configurazione della vista simile a quella mostrata qui di seguito:


t003

Salvate e chiudete Interface Builder. Potete infine cliccare su Build and Run e testare il funzionamento della vostra applicazione tramite l’iPhone Simulator o direttamente sul vostro iPhone o iPod Touch.

Se aveste problemi con il progetto scriveteci tramite il nostro forum. Per comodità mettiamo a disposizione per il download il sorgente del tutoriral.

Questo il risultato finale che dovreste ottenere:


t003_ex

Video Tutorial

by David Pollak



Share this story:
  • tweet

Tags: Objective-cprogrammazionesdkTutorial Pratici

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
  • Uno sguardo al runtime Objective-c

    10 Settembre 2013 - 0 Comment
  • Andrea Picchi: Programmare con Objective-C 2.0 per iOS e OS X

    27 Febbraio 2013 - 10 Comments

Author Description

25 Responses to “T#003 – Creare una presentazione di foto”

  1. 31 Ottobre 2009

    Clod75

    Grande tutorial!! Sono stupito da cosa si può ottenere con così poche righe di codice!!!

  2. 4 Novembre 2009

    gabriele

    Salve a tutti
    sono un neofita di C e a maggior ragione di programmazione per iPhone
    trovo queste guide davvero ben fatte, semplici e curate, COMPLIMENTI!!
    Solo un problema con questo tutorial, non riesco a visualizzare le immagini, dove devo salvarle? i nomi sono “1.jpg”, “2.jpg” e così via?

    Grazie
    Gabriele

  3. 4 Novembre 2009

    Staff devAPP

    Innanzitutto grazie per i complimenti 🙂

    Per quanto riguarda le immagini abbiamo erroneamente dato per scontato che l’utente sapesse inserirle da sè nel progetto. In ogni caso il tutorial è stato aggiornato inserendo al suo interno anche questa spiegazione. Per qualsiasi cosa non esiti a chiedere.

    Saluti

  4. 8 Febbraio 2010

    aaddii

    ciao
    non e che potresi mettere la source, perche non riesco a capire dove sbaglio?

    grazie

  5. 8 Febbraio 2010

    Staff devAPP

    @aaddii: sicuro, entro sera mettiamo online il sorgente 😉

  6. 15 Febbraio 2010

    Staff devAPP

    aaddii :

    ciao
    non e che potresi mettere la source, perche non riesco a capire dove sbaglio?

    grazie

    Abbiamo aggiunto il sorgente del tutorial. Pian piano li aggiungiamo tutti 😉

  7. 4 Ottobre 2010

    Dario

    Eccezzionale !
    Dopo aver cercato in lungo e in largo , finalmente ho trovato un tutorial xCode veramente ben fatto e funzionante Grazie ! ! !
    Forse diventero’ un piccolo xCoder !
    saluti Dario

  8. 8 Ottobre 2010

    devAPP – Tutorial Set #1 - iPhone Italia – Il blog italiano sull'Apple iPhone 4, iPhone 3GS e 3G

    […] (Vai al tutorial completo) […]

  9. 8 Ottobre 2010

    » devAPP – Tutorial Set #1

    […] (Vai al tutorial completo) […]

  10. 8 Novembre 2010

    Giovanni

    Bellissimo tutorial!
    Ho solo 1 domanda: volendo scorrere le foto come nell’app Foto dell’IPhone, e cioè scorrendo verso destra o sinistra con il dito, è possibile farlo in automatico con questo componente? Oppure devo gestire gli eventi al touch?

  11. 10 Gennaio 2011

    Matteo

    Togliere i pulsanti e fare in modo che le foto partano subito in automatico? C’è un comando particolare?

  12. 19 Febbraio 2011

    Anna

    Salve questo tutorial è grandioso!
    Potete suggerirmi sull’argomento foto, un tutorial per la realizzazione di una galleria con miniature ingrandibili? Grazie

  13. 20 Marzo 2011

    Manuel

    @Matteo … direi che basti aggiungere [image startAnimating]; come ultima riga di viewDidLoad.

  14. 5 Aprile 2011

    Matteo

    Salve, volevo sapere come leggere le immagini da un array che ho preso da un .php esterno all’app.
    Ad esempio nel metodo “array = [NSArray arrayWithObjects:” dovrei mettere un for che scorre l’array? Non credo funzioni.

    Attendo delucidazioni.
    Grazie

  15. 16 Aprile 2011

    Mario

    Salve, volevo cortesemente sapere:
    Ho seguito tutto alla lettera,come mai alla fine quando devo fare i collegamenti dei pulsanti non trovo i meteodi “avvia” e “ferma” nella finestra “Presentazione View Controller Connection”?
    Vi ringrazio da subito e vi faccio i miei piu’ sinceri complimenti……

  16. 22 Aprile 2011

    Panasonic

    Ma quanto devono essere grandi le immagini???

  17. 8 Maggio 2011

    MaveDev

    Grazie per questa utile guida.
    Io ho pero’ un problema, funziona benissimo quando la provo sul simulatore, pero’ quando carico l’applicazione sull’iphone allora parte l’applicazione ma alla pressione del tasto “avvia” le immagini non vengono visualizzate. Mi stupisce che funziona benissimo sul simulatore, a questo punto potrebbe essere che non vengono portate le immagini sul device all’atto del’installazione. Non ho idea di quale sia il problema, magari qualcuno di voi ha avuto lo stesso problema 🙂
    grazie, ciao

  18. 9 Maggio 2011

    MaveDev

    Problema risolto 🙂
    Quando importavo le immagini nel progetto dal Mac allora le immagini avevano estensione “JPG” mentre dentro nel codice avevo scritto “jpg”.
    Effettivamente questo non e’ un problema per il simulatore che e’ case insensitive mentre lo e’ per l’iphone che e’ case sensitive. Ho cambiato il codice con la giusta estensione uppercase e l’applicazione funziona anche su iPhone 🙂

  19. 14 Maggio 2011

    alberto

    non funziona, forse non ho capito dove mettere le immagini. Credo di avere una versione più aggiornata di Xcode

  20. 4 Giugno 2011

    Fabio

    Anche a me non funziona. Ho la versione 4 di XOCDE e non esiste la cartella Resources. Ho caricato le foto nel progetto ma ho questo tipo di errore: Called object is not in a function.

    Grazie mille in anticipo per l’aiuto

  21. 24 Ottobre 2011

    bla

    Grazie per queste guide,
    ho un problema Le due istruzioni -(void)avvia:(id)sender; e -(void)ferma:(id)sender; nel Presentazione View Controller Connection non ci stanno.

  22. 25 Ottobre 2011

    bla

    Risolto, al posto di usare -(void)avvia:(id)sender; e -(void)ferma:(id)sender;
    ho usato -(IBAction)avvia:(id)sender; e -(IBAction)ferma:(id)sender;

  23. 27 Gennaio 2012

    babba

    Infatti non capivo come poter collegare un’azione ai pulsanti se non è presente IBAction, credo sia opportuno aggiornare e scrivere la dichiarazione giusta per i pulsanti, in ogni caso grazie mille x tutto quello che fate

  24. 6 Dicembre 2012

    Antonio

    Se carichi molte foto, la prima volta che premi avvia dopo aver aperto l’applicazione ci mette un pò di tempo a partire, invece le volte successive parte subito. come potrei risolvere?

  25. 14 Gennaio 2013

    Matteo

    per farla partire in automatico al caricamento della pagina come dovrei fare?
    ho provato a togliere le action e mettere la riga [immagine startAnimating];
    dentro il viewdidload ma non va…..

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