Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 油漆代码中的UIButton(Swift)_Ios_Swift_Uiview_Uibutton_Paintcode - Fatal编程技术网

Ios 油漆代码中的UIButton(Swift)

Ios 油漆代码中的UIButton(Swift),ios,swift,uiview,uibutton,paintcode,Ios,Swift,Uiview,Uibutton,Paintcode,所以我一直在玩Xcode中的PaintCode和stylekit。我制作了一个按钮,用它自己的子类创建了一个UIView,它在我的ViewController和设备上显示得很好。然而,我想将这个UIView转换成一个UIButton,因为我想在点击它时执行代码。我该怎么做呢 谢谢大家,祝你们玩得开心:)我使用PaintCode的UIImage方法,并将该UIImage用作UIButton的图像。下面是我使用的代码,它在ObjC中,但是应该可以很容易地转换为Swift PaintCode生成的代码

所以我一直在玩Xcode中的PaintCode和stylekit。我制作了一个按钮,用它自己的子类创建了一个UIView,它在我的ViewController和设备上显示得很好。然而,我想将这个UIView转换成一个UIButton,因为我想在点击它时执行代码。我该怎么做呢


谢谢大家,祝你们玩得开心:)

我使用PaintCode的UIImage方法,并将该UIImage用作UIButton的图像。下面是我使用的代码,它在ObjC中,但是应该可以很容易地转换为Swift

PaintCode生成的代码-您不需要编写的东西(假设该类称为PaintCodeClass):

我的代码是:

UIImage *image = [PaintCodeClass imageOfIcon];
UIButton *button = (initialize, set frame, etc)
[button setImage:image forState:UIControlStateNormal];
有些人更喜欢这样:

[button setBackgroundImage:image forState:UIControlStateNormal];
如果你真的想做,你可以做:

[button addSubview:whateverThePaintCodeViewIsCalled];

但这并不像一个按钮,所以你可能不想这样做。

@Mitch Cohens在Swift 4.1中回答:

static var icon: UIImage {
    UIGraphicsBeginImageContextWithOptions(CGSize.init(width: 50, height: 50), false, 0.0)
    PaintCodeClass.drawIcon()
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image!
}
用法:


按钮.setImage(PaintCodeClass.icon,用于:.normal)

非常感谢您的回复。我最初在UIView上使用了TapGestureRecognitor,然后创建了一个到另一个VC的segue,但后来我找到了一个更优雅的解决方案。我为UIButton创建了一个新的子类,并使用了相同的StyleKit绘图方法。然后,我在interface builder中拖动一个按钮,并将该类更改为我定义的子类。像魔术一样工作。
static var icon: UIImage {
    UIGraphicsBeginImageContextWithOptions(CGSize.init(width: 50, height: 50), false, 0.0)
    PaintCodeClass.drawIcon()
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image!
}