ios - guidelines - Cómo no estirar una imagen en UIButton
menu ios (5)
Storyboard
Imagen de la propiedad
Debe definir una propiedad específica en Atributos de tiempo de ejecución de Identity inspector - imageView.contentMode
, donde establece el valor relativo a la posición rawValue
de enum UIViewContentMode
. 1 significa scaleAspectFit .
Y la alineación de los botones, en el inspector de atributos :
Intento crear una UITableViewCell personalizada mediante programación y una de las subvistas de esta celda va a ser un botón con una imagen (una imagen simple de una lupa). Sin embargo, quiero que la imagen del botón se centre y se incline proporcionalmente hacia abajo para que quepa en el botón y NO se estire para llenar todo el botón. A continuación se muestra mi código donde auto se refiere a la UITableViewCell personalizada en la que estoy colocando el botón.
self.myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.myButton setBackgroundImage:[UIImage imageNamed: @image_name_here"] forState:UIControlStateNormal];
self.myButton.frame = CGRectMake(...//something, something)
self.myButton.imageView.contentMode = UIViewContentModeCenter;
[self.contentView addSubview:self.mySearchHelpButton];
En este momento, la imagen se extiende para llenar todo el botón en lugar de escalar proporcionalmente para que se ajuste bien.
También intenté configurar el UIViewContentModeScaleAspectFill
en UIViewContentModeScaleAspectFill
pero esto no parece cambiar nada. De hecho, ninguno de los diferentes contentModes parece cambiar nada.
¿Has probado setImage
lugar de setBackgroundImage
?
Asegúrate de que el botón sea un UIButton personalizado
Simplemente usando setImage:
no funcionó para mí en iOS9.
Pero funcionó combinado con myButton.imageView.contentMode = UIViewContentMode.ScaleAspectFit;
En Swift ...
button.imageView?.contentMode = .aspectFit
Versión Swift
myButton.imageView!.contentMode = UIViewContentMode.scaleAspectFit