Swift中的UIButton有两个图像

Kie*_*ock 9 customization uibutton swift

我正在尝试制作一个UIButton,它在按钮标题的两侧(左侧和右侧)都有一个UIImage.理想情况下,图像将固定在按钮的左侧和右侧,标题将居中,但我可以将图像放在我想的标题标签旁边.我已经能够添加一个图像,它出现在标题之前,但是我如何添加第二个?

NoS*_*ies 11

我知道这是一个老问题,但由于没有提供代码而且有人要求它,我想我会分享我的解决方案.

我所做的是创建一个新类,它是UIButton的子类.我确保您可以在界面构建器中立即看到您所做的所有更改.所以你可以直接拖入UIButton.将类指定为您自己的类,它将允许您设置图像并立即查看它

以下是我为实现这一目标所做的工作

import UIKit

@IBDesignable
class AddProfilePictureView: UIButton {

    @IBInspectable var leftHandImage: UIImage? {
        didSet {
            leftHandImage = leftHandImage?.withRenderingMode(.alwaysOriginal)
            setupImages()
        }
    }
    @IBInspectable var rightHandImage: UIImage? {
        didSet {
            rightHandImage = rightHandImage?.withRenderingMode(.alwaysTemplate)
            setupImages()
        }
    }

    func setupImages() {
        if let leftImage = leftHandImage {
            self.setImage(leftImage, for: .normal)
            self.imageView?.contentMode = .scaleAspectFill
            self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: self.frame.width - (self.imageView?.frame.width)!)
        }

        if let rightImage = rightHandImage {
            let rightImageView = UIImageView(image: rightImage)
            rightImageView.tintColor = COLOR_BLUE

            let height = self.frame.height * 0.2
            let width = height
            let xPos = self.frame.width - width
            let yPos = (self.frame.height - height) / 2

            rightImageView.frame = CGRect(x: xPos, y: yPos, width: width, height: height)
            self.addSubview(rightImageView)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 0

我会将其分成集合视图中的两个按钮 - 它非常灵活,并且可以很好地用于此类操作。