Comment faire pour centrer une image dans un UIButton sans l'étirer dans les deux sens dans Swift?
Je fais un clavier personnalisé et j'ai besoin de centre de l'image de la maj de l'icône à l'intérieur de la touche shift. L'image est 100px x 100px.
Cependant, l'image du bouton dans le portrait est 36pt x 38pt
, et dans le paysage, il est 68pt x 32pt
. J'ai essayé d'utiliser l'image du bouton encart de propriété au centre de l'image. Cependant, il n'a pas fait.
J'ai essayé moi-même et de définir les bords de l'image encarts de (25,25,25,25)
, à l'image des centres dans les deux tailles. Cependant, l'icône devient trop petit pour voir.
shiftButton.setImage(UIImage(named: "shift"), forState: .Normal)
shiftButton.imageEdgeInsets = UIEdgeInsetsMake(0,0,0,0)
Je fais le bouton par programmation. Et, je dois le bouton à l'échelle de maintenir son ratio d'aspect c'est à dire 1:1
. Sa largeur ou la hauteur maximale est toujours liée à la touche, la hauteur d'elle-même. La taille de l'image doit être au maximum de bouton de hauteur. Et, il ne faut pas s'étirer en aucune façon à fausser l'icône. Toutefois, le bouton lui-même peut s'étirer.
J'ai besoin de l'image à l'échelle selon l'image du bouton, mais de maintenir son ratio d'aspect. Et, il peut l'échelle ou à l'échelle, mais il faut toujours maintenir le 1:1 ratio d'aspect.
Des suggestions pour résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Enfin une solution est venue. Vous devez définir le mode de contenu de l'image à l'intérieur de la UIButton.
La solution est de mettre à jour le
contentMode
de laImage
lorsque vous utilisez une image de premier plan à l'intérieur d'un bouton avec lacontentMode
de laUIButton
.Dans la capture d'écran ci-dessous de la valeur 1 est égal à scaleAspectFit
Définir le contenu du bouton mode pour
Center
:.ScaleAspectFit
?.Center
ne devrait pas s'étendre à tous: "La possibilité de centrer le contenu de l'avis de limites, en gardant les mêmes proportions."J'ai pu le centre de l'image en réglant le contenu des encarts de 0 à l'aide de la taille de l'inspecteur sur la table de montage séquentiel: