Ios 油漆代码中的UIButton(Swift)
所以我一直在玩Xcode中的PaintCode和stylekit。我制作了一个按钮,用它自己的子类创建了一个UIView,它在我的ViewController和设备上显示得很好。然而,我想将这个UIView转换成一个UIButton,因为我想在点击它时执行代码。我该怎么做呢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生成的代码
谢谢大家,祝你们玩得开心:)我使用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!
}