2010-05-08 11 views
6

Ho il seguente codice.UIButton Immagine e frame personalizzati

UIImage *cancelImg = [UIImage imageNamed:@"cancel.jpeg"]; 
    UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btnCancel.userInteractionEnabled = YES; 
    [btnCancel setFrame:CGRectMake(0.0,0.0, 28.0, 28.0)]; 
    [btnCancel setImage:cancelImg forState:UIControlStateNormal]; 
    cell.accessoryView = btnCancel; 

cancel.jpeg attualmente è più grande di 28 x 28 ed è in realtà al 100 x 100.

Perché la visualizzazione dei pulsanti 100 x 100 dimensioni dell'immagine quando ho impostato la dimensione del UIButton a 28 x 28?

+0

Ho dovuto ridimensionare l'immagine a 28 x 28. Ho solo pensato che la cornice di UIButton avrebbe riempito l'immagine 100 x 100 a 28 x 28. Indovina. –

risposta

13

Il pulsante image non viene ridimensionato. Imposta come backgroundImage se hai bisogno di riscalare.

[btnCancel setBackgroundImage:cancelImg forState:UIControlStateNormal]; 
+0

risposta molto utile. – pmk

3

Questo comportamento deve essere modificato poiché il codice precedente produce un pulsante ridimensionato su iOS 4.2.

+0

Dang. In realtà volevo il comportamento dal post originale. Grazie per aver postato questo. – AndrewKS

0

Ho sperimentato su iOS 5 con pulsanti personalizzati che si autorizzano quando cambia l'orientamento del dispositivo. Ho impostato sia un'immagine di sfondo che un'immagine, con gli stessi limiti iniziali del pulsante, e quello che vedo è che l'immagine di sfondo si ridimensiona e l'immagine non lo fa, ma rimane centrata nella cornice del pulsante.

Problemi correlati