我試圖讓文字右側的圖像(它是建立在IB)。我發現here的想法是子類的UIButton並重寫: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碼等
所以這是行不通的。
是否有另一種方法可以輕鬆地能得到我的圖片上的文字的右側居中文本的按鈕?
我嘗試這種方法,因爲我想支持多種語言和對接的文本on可以有不同的長度。
是的,但這隻適用於確切長度的字符串。在翻譯中,長度可能不同。 – Matthijn
你可以根據st字符串的不同長度增加你的按鈕長度。如果是,那麼在設置Text on按鈕後,必須通過self.imageEdgeInsets = UIEdgeInsetsMake(0.0,0.0,(btSize.width - imageSize.width),0.0)更改圖像的插入點。 – Surjeet