titlelabel guidelines color buttons ios cocoa uibutton

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