ios - color - ¿Por qué una imagen UIButton personalizada no cambia de tamaño en el Interface Builder?
menu ios (9)
Intente establecer la propiedad de subvistas de clips en el Generador de interfaces en verdadero.
Espero que ayude.
¿Por qué una imagen UIButton personalizada no cambia de tamaño con el botón?
Establecí su modo de vista en Escalar para rellenar el Creador de interfaz, pero a diferencia de una imagen UIImageView, no respeta esa configuración.
¿Estoy buscando en el lugar equivocado o no es posible?
La mejor solución que he encontrado hasta ahora en Swift 2.1 es la siguiente:
self.imageButton.imageView?.clipsToBounds = true
self.imageButton.imageView?.contentMode = UIViewContentMode.ScaleAspectFit
Esto escalará la imagen para que tenga un aspecto adecuado en el imageView.
Prueba esto:
[button setImage:image forState:UIControlStateNormal];
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
Sé que esto es viejo, pero creo que la respuesta correcta es que debes establecer el modo de contenido en el UIImageView "oculto" que está dentro del UIButton:
button.imageView.contentMode = UIViewContentModeScaleAspectFill;
Esto cambiará el modo de contenido para las vistas de imágenes de las imágenes establecidas con:
[button setImage:yourAwesomeImage forState:UIControlStateNormal];
//Or any other state
Si bien esto puede no ser lo que buscas, la imagen de fondo se escala.
Solo hazlo (desde el diseño O desde el código):
Del diseño
- Abra su Xib O Storyboard.
- Seleccionar botón
- Inspector de atributos interno (lado derecho)> En la sección "Control" > seleccione la última opción 4 para Horizontal y Verical.
[Para el punto n. ° 3: Cambiar horizontal y vertical Alinear con UIControlContentHorizontalAlignmentFill y UIControlContentVericalAlignmentFill]
Del código
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill; button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
Solo obtenga una vista de IU real e inserte un botón UI encima y, a través del menú de diseño, configúrelo para volver. Entonces puedes escalar tu imagen correctamente.
Constructor de interfaz
Para obtener imágenes en UIButtons para escalar de la misma manera que UIViews en Interface Builder, siga estos pasos:
Seleccione su UIButton y desde el Inspector de Identidad agregue lo siguiente a los Atributos de tiempo de ejecución definidos por el usuario:
imageView.contentMode Number 1
Donde number es el número de enumeración de contentMode, por ejemplo:
0 = Scale to fill
1 = Aspect Fit
2 = Aspect Fill
etc..
Luego abra el editor de Atributos para su UIButton y bajo Control configure la Alineación para Rellenar (último botón a la derecha) tanto para horizontal como vertical.
SWIFT 3
Tenga en cuenta que también puede hacer esto en código con lo siguiente:
button.imageView?.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill