iPhone UIButton - image position
I have a UIButton
with text "Explore the app" and UIImage
(>)
In Interface Builder
it looks like:
[ (>) Explore the app ]
But I need to place this UIImage
AFTER the text:
[ Explore the app (>) ]
How can I move the UIImage
to the right?
My solution to this is quite simple
[button sizeToFit];
button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.frame.size.width, 0, button.imageView.frame.size.width);
button.imageEdgeInsets = UIEdgeInsetsMake(0, button.titleLabel.frame.size.width, 0, -button.titleLabel.frame.size.width);
On iOS 9 onwards, seems that a simple way to achieve this is to force the semantic of the view.
Or programmatically, using:
button.semanticContentAttribute = .ForceRightToLeft
Set the imageEdgeInset
and titleEdgeInset
to move the components around within your image. You could also create a button using those graphics that is full size, and use that as the background image for the button (then use titleEdgeInsets
to move the title around).