I framework Cocoa adottano l'approccio secondo cui il modello di composizione degli oggetti è più appropriato della tradizionale gerarchia di classi.
In generale, questo significa che è probabile che ci sia una proprietà su UIButton in cui è possibile impostare un altro oggetto per gestire vari aspetti del pulsante. Questo è il modo preferito per "personalizzare" il funzionamento del tuo pulsante.
Uno dei motivi principali di questo modello è che molti componenti della libreria creano pulsanti e non sanno che si desidera che creino istanze della sottoclasse.
modificare il proprio metodo factory
ho notato il tuo commento sopra circa risparmiare tempo quando si ha lo stesso pulsante di configurazione in molti pulsanti nella vostra app. Questo è un ottimo momento per utilizzare il modello di progettazione metodo di fabbrica e in Objective-C è possibile implement it with a Category quindi è disponibile direttamente su UIButton.
@interface UIButton (MyCompanyFactory)
+(UIButton *) buttonWithMyCompanyStyles;
@end
@implementation UIButton
+(UIButton *) buttonWithMyCompanyStyles {
UIButton *theButton = [UIButton buttonWithType:UIButtonTypeCustom];
// [theButton set...
return theButton;
}
@end
fonte
2012-11-02 20:01:35
Qual è il motivo della sottoclasse di un UIButton? Specificare il tipo di pulsante 'personalizzato'. Cos'altro è necessario? –
Stavo chiedendo di più solo se voglio sottoclassi in futuro, perché non dovrei farlo. Ma in questo momento avrò circa 20 bottoni nella mia app che hanno lo stesso sfondo, font, dimensioni del padding attorno al testo, ecc. Quindi ho voluto creare un po 'di tempo e codice per sottoclassi. – KKendall
Non c'è motivo per cui non sia possibile sottoclasse UIButton. In effetti, lo faccio in modo che possa usare IB per definire l'aspetto del mio pulsante. Perché? Flessibilità di design Molte persone hanno sottometto UIButton. Ho sottoclasse UIButton. Questa convinzione che non può essere qualcosa che si ripete ma manca di prove. –