Categoria ‘iPhone’


Very short snippet: la UIView per visualizzare un’immagine

Lavorando con Interface Builder può venire spontaneo usare un oggetto UIImageView per impostare lo sfondo del nostro view controller. In alternativa è possibile eliminare questo oggetto, risparmiando così un po’ di memoria, e sfruttare la view associata al view controller. Basta inserire nel nostro view controller:

Continua...

CaptureView: catturare una UIView

CaptureView permette di clonare, sotto forma di immagine, una qualsiasi vista (UIView o UIImageView) in modo rapido. Quello che si ottiene è un oggetto CaptureView che può essere utilizzato come una normale UIView (quindi visualizzato). Catturare lo “schermo”, o una sua porzione, può essere utile in molti casi. Una volta ottenuta la nuova “immagine”, questa potrà essere manipolata senza preoccparsi del suo contenuto.
Spesso si hanno più view innestate ed effetuare effetti o trasformazioni sulla view madre che le contiene tutte non è sempre una soluzione ottimale.

Continua...

Common Queue; una semplice soluzione

In ambienti asincroni, dove chiamate a metodi o rilascio di eventi sono pane quotidiano (vedi Adobe ActionScript o Objective-C), spesso la stessa sequenza di operazioni non è identica al millesimo di secondo. Inoltre più metodi posso chiamare una funzione più generale con il rischio di annulare l’una l’effetto dell’altra.

Per chiarire il concetto un esempio lampante. In ambiente iPhone si usa spesso attivare l’indicatore di rete sulla barra di stato, per indicare che c’è – appunto – “traffico” di rete, cioè si sta eseguendo un’operazione di download o upload (scaricamento o invio dati).

Continua...

Varietà di coding e di coding… in Objective-C

Era un po’ che non trattavo l’argomento, quindi ne approfitto subito. Ecco diversi modi per realizzare il medesimo risultato in Objective-C. A voi scoprire qual’è il più veloce e migliore!

Reverse di un array

1
2
3
4
5
6
7
// Da implementare in una categoria
// Pone gli elementi di un array in ordine inverso
- (NSMutableArray *)reverse {
    for (int i=0; i<(floor([self count]/2.0)); i++)
        [self exchangeObjectAtIndex:i withObjectAtIndex:([self count]-(i+1))];
    return self;
}

Continua...

10 utili snippet Objective-C

Spostare il doppio Tap sul simulatore

Il simulatore iPhone/iPad in Xcode permette di simulare il doppio tap con la pressione del tasto ALT. Questo è utile per simulare anche la funzione di Pinch, quella usata per ingrandire o allontare contenuti nelle view con scroll o in oggetti UIWebView. Ebbene, alcuni di voi avranno notato che la simulazione delle “due dita” procede in modo simmetrico partendo sempre dal centro dello schermo. Per muovere questo “centro” è sufficiente tenere premuto anche il tasto SHIFT.

Continua...

Objective-C: gestire multiple animazioni con un solo setAnimationDidStopSelector

L’impostazione del selettore di fine animazione, eseguita con setAnimationDidStopSelector, su una classe UIView è estremamente versatile, come già visto in setAnimationDidStopSelector: usi diversi ed avanzati.
Lasciatemi ora che vi mostri una tecnica davvero comoda quando abbiamo animazioni multiple e/o vogliamo gestire delle code (queue) di animazioni.

Continua...

Objective-C: subclassing e Categorie

In Objective-C è possibile estendere una classe data in due modi: eseguendo un classico subclassing (leggi anche ereditarietà) o sfruttando le cosiddette Categorie.

Nota: esiste anche una terza via in Objective-C indicata con nome di Posing che potremmo definire un mix di subclass (perché definisce un nuovo nome) e Categorie (perché da un dato momento tutte le classi di un tipo si comportano come la nuova).

Continua...

Very short snippet: memorizzare una serie di immagini in NSUserDefaults

Per memorizzare un’immagine nelle NSUserDefaults è sufficiente riuscire ad ottenere un puntatore NSData ai dati dell’immagine. In questo modo potremmo ricostruire la nostra immagine in qualsiasi momento successivo.

Nell’esempio mostrato qui sotto viene sfruttato un array che contiene al massimo 4 immagini. Ogni immagine nuova viene messa in testa e quella in eccesso eliminata.

Continua...

Come sviluppare in PHP con Xcode e Objective-C

Come molti programmatori usano fare, anch’io mi costruisco le mie librerie di funzioni pronte per essere riutilizzate in più progetti e in più contesti. Lasciatemi passare il titolo di questo post, forse un po’ azzardato ma, tuttavia, come vedremo, non lontano dalla realtà.

In Objective-C è possibile scrivere e chiamare codice C/C++, compreso l’assembly se è per questo. Questa sua caratteristica lo rende un linguaggio davvero versatile e, per certi aspetti, fenomenale. Da un lato, infatti, è possibile utilizzare e apprezzare la sintassi prettamente Objective-C, dall’altro è possibile eseguire velocemente porting di codice scritto in ANSI C (magari per Digital Unix o Sun) e utilizzarlo comodamente nelle nostre applicazioni iPhone o iPad; per non parlare di tutto il Kernel BSD già disponibile su Mac OS X!

Continua...

Objective-C: come ruotare un’immagine nello spazio 3D

La classe UIView espone un puntatore al layer (CALayer), un oggetto di più basso livello con innumerevoli potenzialità. Il layer mette a disposizione tutta una serie di metodi e proprietà legati alla visualizzazione del contenuto della view. Ad esempio è possibile manipolare il contenuto di una view nello spazio tridimensionale. Nell’esempio che riporto è interessante notare che il codice è semplice, e il tutto è realizzato sfruttando Interface Builder:

Continua...