2010-05-08 8 views
6

Tengo el siguiente código.Imagen y marco personalizados de UIButton

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 actualmente es más grande que 28 x 28 y en realidad es de 100 x 100.

¿Por qué la pantalla botón de tamaño de 100 x 100 de la imagen cuando he fijado el tamaño de la UIButton a 28 x 28?

+0

Tuve que cambiar el tamaño de la imagen a 28 x 28. Simplemente pensé que el marco de UIButton abarcaría la imagen de 100 x 100 a 28 x 28. Adivina que no. –

Respuesta

13

El image del botón no se volverá a escalar. Establezca como backgroundImage si necesita cambiar el tamaño.

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

respuesta muy útil. – pmk

3

Este comportamiento debe haber cambiado desde entonces, ya que el código anterior produce un botón reducido en iOS 4.2.

+0

Dang. De hecho, quería el comportamiento de la publicación original. Gracias por publicar esto. – AndrewKS

0

He estado experimentando en iOS 5 con botones personalizados que se convierten automáticamente cuando cambia la orientación del dispositivo. Establecí tanto una imagen de fondo como una imagen, con los mismos límites iniciales que el botón, y lo que veo es que la imagen de fondo cambia de tamaño y la imagen no, pero permanece centrada en el marco del botón.

Cuestiones relacionadas