En s'appuyant sur la réponse de @split...
La réponse est fantastique, mais elle ignore le fait que le bouton peut avoir une image personnalisée et des inserts de bord de titre qui sont définis à l'avance (par exemple dans le storyboard).
Par exemple, il se peut que vous souhaitiez que l'image soit un peu plus large que le haut et le bas du conteneur, tout en la déplaçant vers le côté droit du bouton.
J'ai étendu le concept avec cette méthode :-
- (void) moveImageToRightSide {
[self sizeToFit];
CGFloat titleWidth = self.titleLabel.frame.size.width;
CGFloat imageWidth = self.imageView.frame.size.width;
CGFloat gapWidth = self.frame.size.width - titleWidth - imageWidth;
self.titleEdgeInsets = UIEdgeInsetsMake(self.titleEdgeInsets.top,
-imageWidth + self.titleEdgeInsets.left,
self.titleEdgeInsets.bottom,
imageWidth - self.titleEdgeInsets.right);
self.imageEdgeInsets = UIEdgeInsetsMake(self.imageEdgeInsets.top,
titleWidth + self.imageEdgeInsets.left + gapWidth,
self.imageEdgeInsets.bottom,
-titleWidth + self.imageEdgeInsets.right - gapWidth);
}
0 votes
Vous pouvez également utiliser Interface Builder. Consultez ma réponse ici : stackoverflow.com/questions/2765024/
1 votes
Il suffit d'utiliser cette sous-classe avec quelques lignes de code : github.com/k06a/RTLButton