@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);
}