Swift UIButton标题+;图像使用Paintcode应用程序

Swift UIButton标题+;图像使用Paintcode应用程序,swift,image,uibutton,paintcode,Swift,Image,Uibutton,Paintcode,我有一个UIButton,标题右侧有标题和图像。但是我想用paintcode应用程序来绘制图像,而不是用资产中的图像。我怎么做 您可以基于.xib文件创建一个可重用的小部件,该小部件将绘制您需要的所有内容,例如: Reusable widget (loaded from a .xib) _____________________________________________ | UIView | | ___

我有一个UIButton,标题右侧有标题和图像。但是我想用paintcode应用程序来绘制图像,而不是用资产中的图像。我怎么做

您可以基于
.xib
文件创建一个可重用的小部件,该小部件将绘制您需要的所有内容,例如:

Reusable widget (loaded from a .xib)

 _____________________________________________
| UIView                                      | 
|     ___________________________________     |
|    | Button  |  Image (from PaintCode) |    |
|    |_________|_________________________|    |
|_____________________________________________|
。。。或者在PaintCode本身(图像和文本)内执行所有操作,例如:

。。。这将导致以下情况:

您甚至可以使用
@IBInspectable
直接在界面生成器中设置按钮的文本:

import Foundation
import UIKit

@IBDesignable class TextButton: UIButton {

    // MARK: Properties

    // The button's text can be set in Interface Builder.
    @IBInspectable var text: String = "HelloWorld!" {
        didSet {
            setNeedsDisplay() // Forces PaintCode to redraw.
        }
    }

    override var isHighlighted: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    override var isSelected: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    override var isEnabled: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    // MARK: Lifecycle

    override func draw(_ rect: CGRect) {
        StyleKit.drawTextButton(frame: rect, buttonLabelText: text)
    }
}

既然您已经在使用PaintCode,我会坚持使用它,并在那里尽您所能

下面是Xcode项目:


您可以基于
.xib
文件创建一个可重用的小部件,它可以绘制您需要的所有内容,例如:

Reusable widget (loaded from a .xib)

 _____________________________________________
| UIView                                      | 
|     ___________________________________     |
|    | Button  |  Image (from PaintCode) |    |
|    |_________|_________________________|    |
|_____________________________________________|
。。。或者在PaintCode本身(图像和文本)内执行所有操作,例如:

。。。这将导致以下情况:

您甚至可以使用
@IBInspectable
直接在界面生成器中设置按钮的文本:

import Foundation
import UIKit

@IBDesignable class TextButton: UIButton {

    // MARK: Properties

    // The button's text can be set in Interface Builder.
    @IBInspectable var text: String = "HelloWorld!" {
        didSet {
            setNeedsDisplay() // Forces PaintCode to redraw.
        }
    }

    override var isHighlighted: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    override var isSelected: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    override var isEnabled: Bool {
        didSet {
            setNeedsDisplay()
        }
    }

    // MARK: Lifecycle

    override func draw(_ rect: CGRect) {
        StyleKit.drawTextButton(frame: rect, buttonLabelText: text)
    }
}

既然您已经在使用PaintCode,我会坚持使用它,并在那里尽您所能

下面是Xcode项目:


您需要一个自定义UIButton来完成此操作,因为PaintCode不生成UIImage。@4kman,我有一个自定义按钮,但如果我在override func draw(rect:CGRect){}中添加paintCodeApp生成的代码,它只会在整个按钮中绘制。您需要一个自定义UIButton来完成此操作,因为PaintCode不生成UIImage。@4kman,我有一个自定义按钮,但是如果我在override func draw(rect:CGRect){}中添加paintCodeApp生成的代码,它只会在整个按钮中绘制。