web-dev-qa-db-fra.com

Comment utiliser la propriété UIEdgeInsets dans Button in iphone

Je suis nouveau dans le développement d'applications iOS et je voulais savoir comment utiliser la propriété UIEdgeInsets dans le bouton, alors veuillez me guider.

18
Ankit

Tout d’abord, votre question n’est pas très claire sur ce que vous essayez d’atteindre, alors ... posez une question générale, obtenez une réponse générale.

UIButton a trois propriétés de type UIEdgeInsets - contentEdgeInsets, titleEdgeInsets et imageEdgeInsets. Vous pouvez utiliser ces propriétés pour affecter des encarts spécifiques à tout le contenu des boutons, y compris le titre et l'image, ou l'un ou l'autre individuellement.

Vous créez des valeurs UIEdgeInsets à l'aide de la fonction UIEdgeInsetsMake(). UIEdgeInsets encapsule quatre valeurs CGFloat différentes pour les valeurs d'insertion de haut, de gauche, de bas et de droite (respectivement) individuellement. Les valeurs d'insertion positives réduisent la zone de contenu, tandis que les valeurs d'insertion négatives l'augmentent effectivement.

Si vous avez une question plus précise sur la façon d'utiliser UIEdgeInsets avec UIButton, je vous suggère de repenser la procédure à suivre pour le poser et le réessayer. :)

Éditer (pour répondre à la question dans le commentaire): On dirait que vous voudriez faire ce qui suit, puis:

UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0, 7.0, 0.0, 0.0);
button.titleEdgeInsets = titleInsets;
75
Bryan Henry

Si vous voulez un extension for Button et utilisez simplement, utilisez ceci

button.setInset (en haut: 0.0, à gauche: 7.0, en bas: 0.0, à droite: 0.0)

extension UIButton {
    /**
        Creates an Edge inset for a button
        :param: top CGFLoat
        :param: left CGFLoat
        :param: bottom CGFLoat
        :param: right CGFLoat
    */
    func setInset(#top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) {
           self.titleEdgeInsets =  UIEdgeInsetsMake(top, left, bottom, right)
    }
}
3
YannickSteph

Notez que, parfois, vous n’avez pas besoin de définir les contentEdgeInsets. Il suffit de donner au bouton une plus grande contrainte de hauteur et de largeur. Le titre lui-même sera automatiquement centré. 

0
nuynait