cmi*_*mii 4 instance-variables uicolor paintcode swift
我有一个通过 PaintCode 绘制的图标。我需要以编程方式在 XCode 中更改他的颜色。
在 PaintCode 上,我为描边颜色设置了一个变量“ChevronColor”。
现在我有:
@IBDesignable
class IconClass: UIView {
override func draw(_ rect: CGRect) {
StyleKit.drawIcon(frame: self.bounds, resizing: .aspectFit)
}
}
Run Code Online (Sandbox Code Playgroud)
但我想添加这种类型,以便能够设置图标的颜色。
@IBInspectable
var ChevronColor : UIColor {
didSet (newColor) {
setNeedsDisplay()
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道怎么办。
导出 StyleKit 文件后,我在 stylekit 文件中排除了此方法,但事实并非如此:
StyleKit.drawIcon(frame: self.bounds, resizing: .aspectFit, chevronColor: self.ChevronColor)
Run Code Online (Sandbox Code Playgroud)
TL/DR
创建一个采用red, green, blue, alpha(external parameters在 PaintCode 中)并生成颜色(makeColor在 PaintCode 中的函数)的表达式。然后通过该表达式将生成的颜色分配给Stroke,Fill等。
油漆代码
自定义视图
import Foundation
import UIKit
@IBDesignable class TreeView: UIView {
/*
*
* Notice - supported range for colors and alpha: 0 to 1.
* Color 0.808, 0.808, 0.808 = gray (starting color in this example).
*
*/
@IBInspectable var redColor: CGFloat = 0.808 {
didSet {
setNeedsDisplay()
}
}
@IBInspectable var greenColor: CGFloat = 0.808 {
didSet {
setNeedsDisplay()
}
}
@IBInspectable var blueColor: CGFloat = 0.808 {
didSet {
setNeedsDisplay()
}
}
@IBInspectable var alphaColor: CGFloat = 1 {
didSet {
setNeedsDisplay()
}
}
override func draw(_ rect: CGRect) {
StyleKit.drawTreeIcon(frame: rect,
resizing: .aspectFit,
red: redColor,
green: greenColor,
blue: blueColor,
alpha: alphaColor)
}
}
Run Code Online (Sandbox Code Playgroud)
更改颜色示例
@IBAction func colorButtonPressed(_ sender: UIButton) {
// Get color references.
let red = CIColor(color: sender.backgroundColor!).red
let green = CIColor(color: sender.backgroundColor!).green
let blue = CIColor(color: sender.backgroundColor!).blue
let alpha = CIColor(color: sender.backgroundColor!).alpha
// Update the PaintCode generated icon.
treeView.redColor = red
treeView.greenColor = green
treeView.blueColor = blue
treeView.alpha = alpha
}
Run Code Online (Sandbox Code Playgroud)
演示
参考
该项目可以从我的 GitHub 存储库中克隆。
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |