Pourquoi une image UIButton personnalisée ne redimensionne pas dans Interface Builder?

pourquoi une image UIButton personnalisée ne redimensionne-t-elle pas avec le bouton?

j'ai paramétré son mode de vue sur pour remplir dans Interface Builder, mais contrairement à une image UIImageView, il ne respecte pas ce paramètre.

je cherche au mauvais endroit ou il n'est pas possible?

34
demandé sur Matt Becker 2009-06-30 14:44:50

9 réponses

bien que ce ne soit pas tout à fait ce que vous cherchez - l'image de fond fait échelle.

75
répondu teabot 2009-06-30 11:06:14

essayez ceci:

[button setImage:image forState:UIControlStateNormal];
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
42
répondu Cao Huu Loc 2014-10-15 07:17:45

N'oubliez pas de régler les paramètres D'alignement des commandes pour le bouton

here set Control Alignment settings for the button

27
répondu drpawelo 2016-12-13 16:33:20

je sais que c'est ancien, mais je pense que la bonne réponse est que vous devriez définir le mode de contenu à L'UIImageView "caché" qui est à l'intérieur de L'UIButton:

button.imageView.contentMode = UIViewContentModeScaleAspectFill;

cela va changer le mode de contenu pour les vues d'images avec:

[button setImage:yourAwesomeImage forState:UIControlStateNormal]; 
//Or any other state
10
répondu Raspu 2013-06-17 04:11:36

Just do (De la Conception OU De Code):

Du Modèle

  1. ouvrez votre XIB ou Storyboard.
  2. , Sélectionnez le bouton
  3. à l'Intérieur "1519100920 Attribut" Inspecteur (à Droite) > Dans "Contrôle" "1519110920 de la section" > sélectionner le dernier 4ème option pour à la fois Horizontale et Verical.

[Pour Le Point 3: Changement Horizontal and vertical Align to UIControlContentHorizontalAlignmentfill and Uicontrolcontentvericalignmentfill]

Du Code

Bouton

.contentHorizontalAlignment = Uicontrolcontenthorizontalignmentfill; bouton.contentverticalalalignmentfill = Uicontrolcontentverticalignment;

10
répondu Sandip Patel - SM 2015-09-11 08:26:49

Interface Builder

pour obtenir des images en UIButtons à l'échelle de la même façon que UIViews dans interface Builder suivre ces étapes:

Sélectionnez votre UIButton et dans le "Identity Inspector ajouter ce qui suit à L'utilisateur attributs D'exécution définis :

imageView.mode de contenu numéro 1

où le nombre est le nombre enum de contentMode, par exemple:

0 = Scale to fill 
1 = Aspect Fit 
2 = Aspect Fill
etc..

ouvrez alors le attributs éditeur pour votre UIButton et sous contrôle réglez le alignement pour remplir (dernier bouton à droite) à la fois horizontal et vertical.

SWIFT 3

Note Vous pouvez également le faire en code avec le suivant:

button.imageView?.contentMode = .scaleAspectFit
button.contentVerticalAlignment = .fill
button.contentHorizontalAlignment = .fill
3
répondu George Filippakos 2017-05-20 01:10:08

essayez de définir la propriété Clip subviews dans Interface Builder à true.

Espère que ça aide.

0
répondu Dshutsi 2009-06-30 11:33:58

la meilleure solution que J'ai trouvée jusqu'à présent dans Swift 2.1 est la suivante:

self.imageButton.imageView?.clipsToBounds = true
self.imageButton.imageView?.contentMode = UIViewContentMode.ScaleAspectFit

ceci va dimensionner l'image de sorte qu'elle ait un ajustement d'aspect dans l'imageView.

-2
répondu Menno 2016-02-05 08:11:55

il suffit d'obtenir un vrai UIimageview et de placer un UIbutton sur le dessus de lui et via le menu de mise en page le régler à l'arrière. Alors vous pouvez ajuster votre image correctement.

-5
répondu Rene 2010-03-05 11:09:40