Articoli con Tag ‘class’


Objective-C: notifiche e delegati

In Objective-C abbiamo due modi molto utilizzati per ricevere ed inviare messaggi tra classi: le notifiche e i delegati. La differenza tra i due, oltre che essere a livello di implementazione, dipende sostanzialmente da “quanti” – oggetti – possono ricevere un messaggio. Prima di tutto lasciatemi mostrare come nasce il concetto di delegato.

Continua...

Come creare un proprio protocollo con delegato

Anche nei tutorial più semplici è possibile incontrare l’uso dei protocolli. Sarà certamente capitato a molti di utilizzare nel vostro view controller un protocollo, inserendo, accanto alla definzione dell’interfaccia, una dicitura simile a:

1
2
3
@interface myViewController : UIViewController <uiwebviewdelegate> {
...
}

Continua...

Come selezionare un gruppo di tag che non hanno figli di un certo tipo

jQuery è giunto alla versione 1.4! Oltre a varie nuove features e la “solita” riscrittura del codice, tutta la documentazione è stata rivista in maniera davvero più leggibile rispetto a prima. Ma vediamo alla questione di questo post; problema: aggiungere, tramite jQuery, una classe a tutti i tag a che possiedono l’attributo target impostato a _blank!

Continua...

iPhone: estendere una classe UIView

Voglio mostrare come è possibile, in modo semplice e rapido, estendere una classe UIView in modo che risponde ad un nuovo metodo di inizializzazione contenente ulteriore codice per personalizzare l’oggetto UIView creato. Come probabilmente alcuni di voi sapranno, Objective-C non supporta un unico costruttore come avviene in altri linguaggi ad oggetti (come Adobe ActionScript o PHP5). E’ possibile, infatti, creare un’istanza di una classe richiamando manualmente diversi costruttori (virtualmente infiniti). Normalmente siamo abituati a creare oggetti UIView con il classico initWithFrame. Immaginiamo però di voler creare una nuova classe di oggetti visuali, a partire da una UIView, con qualche aggiunta; ad esempio una label incorporata. In pratica quello che vogliamo ottenere è che instanziando il nostro oggetto questo crei, oltre che alla UIView, anche un oggetto di tipo UILabel. Ad esempio potremmo voler ottenere alla fine:

1
ViewLabel *vl = [[ViewLabel alloc] initWithLabelDefine:CGRectMake(0,0,320,80) label:@"Ciao"];

Per ottenere questo basta semplicemente creare una nuova classe di tipo UIView e chiamarla ViewLabel:

1
2
3
4
5
6
7
8
9
10
11
12
13
//
//  ViewLabel.h
//

#import <UIKit/UIKit.h>

@interface ViewLabel : UIView {
    UILabel *internalLabel;
}

- (id)initWithLabelDefine:(CGRect)frame label:(NSString *)labelDefine;

@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//
//  ViewLabel.m
//

#import "ViewLabel.h"

@implementation ViewLabel

- (id)initWithFrame:(CGRect)frame {
   
    if (self = [super initWithFrame:frame]) {
        // Initialization code
    }
    return self;
}

//
// Il nostro nuovo inizializzatore
//
- (id)initWithLabelDefine:(CGRect)frame label:(NSString *)labelDefine {
   
    if (self = [super initWithFrame:frame]) {
        // qui potete decidere voi come comportarvi, io per
        // sicurezza ho preso lo stesso frame passato negli
        // input ma ho azzerato la x e la y
        frame.origin.x = 0;
        frame.origin.y = 0;
        internalLabel = [[UILabel alloc] initWithFrame: frame];
        internalLabel.text = labelDefine;
        [self addSubview:internalLabel];
        [internalLabel release];
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
    // Drawing code
}

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

@end

Al momento della creazione della nostra nuova classe, potremmo usare:

1
ViewLabel *vl = [[ViewLabel alloc] initWithLabelDefine:CGRectMake(0,0,320,80) label:@"Ciao"];

Continua...

WordPress: personalizzare la navigazione tra i post

WordPress mette a disposizione numerose funzioni per spostarsi tra i vari post e pagine in avanti ed indietro. Queste sono usate all’interno dei temi, spesso in modo del tutto interscambiabile, anche se contengono alcune differenze. Tutto questo, a dire il vero, creo non poca confusione al momento della scelta della funzione da usare. Eccone alcune note:

Continua...

Actionscript 3.0 for beginners: lesson #5

Chi ha iniziato a sviluppare codice con linguaggi di scripting come Javascript o lo stesso Actionscript, potrebbe non conoscere affatto il concetto di tipo dato. Con alcuni linguaggi ad alto livello, infatti, si è abituati – nella migliore delle ipotesi – a dichiarare le variabili senza assegnargli un tipo dato specifico, senza contare quei linguaggi che non richiedono nessuna dichiarazione (come ad esempio il PHP – non nella versione strict 5).

Continua...

Very short trick: ADDED_TO_STAGE

Come abbiamo visto più volte, nel costruttore di una classe che estende un MovieClip può essere necessario aggiungere l’evento ADDED_TO_STAGE per capire quando il nostro MovieClip è disegnato effettivamente sulla stage:

Continua...

Very short snippet: jQuery auto target blank link

Niente di nuovo, ma lo segno per ricordarmelo: come aggiungere un immagine a tutti i link che aprono una nuova pagina:

1
jQuery('a[@target=_blank]').addClass('external');

Continua...

Actionscript 3.0 for beginners: lesson #4

Riprendiamo il nostro codice di esempio del TicTacToe (che trovate per intero su Google Code) e iniziamo ad analizzarlo in dettaglio.

Importare le definizioni

Con Actionscript 3.0 è stato fatto un grande lavoro di pulizia e sistemazione nell’alberatura delle classi (contenute nei pacchetti, package) utilizzate durante lo sviluppo. In altri linguaggi di programmazione, come il C ad esempio, quando si desidera utilizzare una funzionalità bisogna esplicitamente “importarla” nel codice. Questa operazione di “importazione” è necessaria per permettere al compilatore di avere tutti i codici e le definizioni legate alla funzionalità che vogliamo usare. In Actionscript 3.0, tuttavia, l’istruzione import non va confusa con l’equivalente C/C++ #include; Actionscript 3.0 mette a disposizione l’istruzione include che è identica all’#include del C/C++. Quest’ultima, infatti, “include” effettivamente del codice che, se usato o meno, viene compilato nell’eseguibile finale. L’istruzione import è di più alto livello e risulta più “intelligente” in fase di compilazione. Essa serve principalemente per accedere alle classi senza doverne specificare il nome completo. In alre parole invece di usare forme del tipo:

1
var myMC:flash.display.MovieClip = new flash.display.MovieClip();

Continua...

Very short trick: versatilità delle classi CSS

I più esperti lo sapranno già, tuttavia mi viene spesso chiesto che differenza c’è tra class e id nei fogli di stile CSS. Una panoramica su alcune differenze e avvertenze è possibile trovarla in Classi e ID nei CSS, tuttavia una caratteristica utile, che distingue class da id, è la possibilità di usare classi multiple.

Continua...



Stop SOPA