Comment ne pas étirer une image dans UIButton
Je suis en train de créer un personnalisé UITableViewCell par programme et l'un des sous-vues de cette cellule va être un bouton avec une image (une image simple d'une loupe). Cependant, je veux que le bouton de l'image soit centrée et dans des proportions jusqu'à ajustement sur le bouton et de ne PAS être étirée pour remplir l'ensemble de bouton. Ci-dessous mon code où l'autonomie se réfère à la coutume UITableViewCell qui je suis en plaçant le bouton.
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];
Droite, l'image s'étend à remplir la totalité de bouton plutôt que de réduire proportionnellement, de sorte qu'il s'intègre parfaitement.
J'ai également essayé le réglage de la contentMode à UIViewContentModeScaleAspectFill
mais cela ne semble pas changer quoi que ce soit. En fait, aucun des différents contentModes semblent changer quoi que ce soit.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé
setImage
au lieu desetBackgroundImage
?Assurez-vous que le bouton est une Coutume UIButton
Juste en utilisant
setImage:
n'a pas fonctionné pour moi sur iOS9.Mais il a travaillé combiné avec
myButton.imageView.contentMode = UIViewContentMode.ScaleAspectFit;
Dans Swift...
button.imageView?.contentMode = .scaleAspectFit
yourButton.translatesAutoresizingMaskIntoConstraints = false
puis.scaleAspectFit
ne sera pas appliquéeStoryboard
Propriété image.
Vous devez définir la propriété spécifique dans Exécution des Attributs de Identité de l'inspecteur –
imageView.contentMode
, où vous définissez la valeur relativement àrawValue
position de enumUIViewContentMode
. 1 signifie scaleAspectFit.Et du bouton d'alignement, dans Attributs de l'inspecteur de:
scaleAspectFit
sont de droite pour cela. Si ce n'est pas ce que vous dites – créer une question et de mettre un lien ici. Mais une remise en question pour des images de résultat attendu.Swift 4.2
Swift version antérieure
Swift 4.X et 5.X
Je pense que vous les gars sont manquants le problème évident. L'image est trop grande pour le bouton et iOS ensuite deviner à la façon dont vous souhaitez mettre à l'échelle. Assurez-vous que vos images sont de la bonne taille et vous n'aurez pas ce problème. Bien sûr, c'est pour les images statiques et les boutons que vous connaissez la taille de l'avant-pas de contenu dynamique.