Usted no tiene acceso a la imageView fondo, pero no es totalmente solución de trabajo:
EDITAR: Hay una mejor solución entonces lo que he publicado originalmente. Se puede crear un UIImage de cualquier color, y llame -setBackgroundImage:forState.
Ver bradley's
respuesta, aquí: https://stackoverflow.com/a/20303841/1147286
Respuesta original:
En lugar de llamar -setBackgroundImage:forState:
, cree un nuevo UIImageView y agréguelo como una subvista del botón.
UIImageView *bgImageView = [[UIImageView alloc] initWithImage:img];
bgImageView.contentMode = UIViewContentModeScaleAspectFit;
[bgImageView setFrame:CGRectMake(0, 0, videoButton.frame.size.width, videoButton.frame.size.height)];
bgImageView.tag = 99;
[yourButton addSubview:bgImageView];
[yourButton bringSubviewToFront:yourButton.imageView];
- crear el imageview
- Ajuste el modo de contenido y el marco
- También creó una etiqueta reconocible, de modo que cuando la pantalla gira que puedo encontrar fácilmente mi imageView costumbre en subvistas del botón y restablecer su marco
- añadirla como una subvista al botón
- Llevar el imageView frontal del botón en la parte delantera por lo que nuestro imageView costumbre que no se superponga
Cuando el botón tiene que girar simplemente encontrar el imageView por su etiqueta y restablecer su marco:
UIImageView *bgImageView = (UIImageView *)[button viewWithTag:99];
[bgImageView setFrame:CGRectMake(0, 0, newWidth, newHeight)];
¿De verdad necesita que sea la imagen de fondo ? ¿Necesitas escribir texto o colocar otra imagen sobre él? De lo contrario, utilice la imagen y no la imagen de fondo, ya que solo la imagen de fondo se estira de forma predeterminada para que coincida con el marco. –
@Raphael ¿Ninguna de estas respuestas es adecuada? – memmons