无论文本长度如何,都将图像对齐到 UIButton 的右上角

Align image at the right corner of UIButton irrespective of text length

无论文本长度如何,都需要将图像对齐到 UIButton 的右上角。我已经设法在文本的右侧设置了一个图像,但它在文本结束的地方放置了一个图像。下面是我得到的代码和输出。

btnSelect.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
btnSelect.imageEdgeInsets = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 0)

使用UIButtonoverride方法并管理您的标题和图像框架。

这里是 UIButton 子类。

class ButtonIconRight: UIButton {
    override func imageRect(forContentRect contentRect:CGRect) -> CGRect {
        var imageFrame = super.imageRect(forContentRect: contentRect)
        imageFrame.origin.x = self.bounds.width - imageFrame.width
        return imageFrame
    }
    
    override func titleRect(forContentRect contentRect:CGRect) -> CGRect {
        var titleFrame = super.titleRect(forContentRect: contentRect)
        if (self.currentImage != nil) {
            titleFrame.origin.x = 0
        }
        return titleFrame
    }
}