Xây dựng câu trả lời bằng @split ...
Câu trả lời là tuyệt vời, nhưng nó bỏ qua thực tế là nút có thể có các hình ảnh cạnh tiêu đề và cạnh tiêu đề được đặt trước (ví dụ như trong bảng phân cảnh).
Ví dụ, bạn có thể muốn hình ảnh có một số phần đệm từ trên cùng và dưới cùng của hộp chứa, nhưng vẫn di chuyển hình ảnh sang bên phải của nút.
Tôi mở rộng khái niệm với phương pháp này: -
- (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);
}