Создание ответа с помощью @split ...
Ответ фантастический, но он игнорирует тот факт, что кнопка может иметь пользовательские вставки изображения и края заголовка, которые установлены заранее (например, в раскадровке).
Например, вы можете захотеть, чтобы у изображения были отступы сверху и снизу контейнера, но все же переместить изображение в правую часть кнопки.
Я расширил концепцию с помощьюэтот метод: -
- (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);
}