【发布时间】:2014-09-02 05:25:40
【问题描述】:
我正在尝试在文本右侧获取图像(在 IB 中构建)。我发现here 的一个想法是继承 UIButton 并覆盖:
- (CGRect)imageRectForContentRect:(CGRect)contentRect
和
- (CGRect)titleRectForContentRect:(CGRect)contentRect` which I did.
但在该示例中,图像被一直推到按钮的右边缘。我希望它出现在我居中的文本之后。所以,我想,如果我能得到带有某种字体的width of the label,我就可以做到这一点。
效果很好。但。如果我像这样在imageRectForContentRect 中这样做:
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
CGSize textSize = [self.titleLabel.text sizeWithAttributes:@{NSFontAttributeName: self.titleLabel.font}];
}
我得到一个无限循环(因为调用 self.titleLabel 调用 imageRectForContent,它调用 textSize 代码等等。
所以那是行不通的。
是否有另一种方法可以轻松地将我的图像放在文本的右侧,并使用带有居中文本的按钮?
我正在尝试这种方法,因为我想支持多种语言,并且按钮的文本可能有不同的长度。
【问题讨论】:
标签: ios objective-c cocoa-touch uibutton uilabel