不能在 drawRect 中使用颜色透明度
Cannot use color transparency in drawRect
我在 drawRect 中遇到透明度问题。我有一个自定义的 UIView。如果我绘制一个矩形贝塞尔曲线路径并用灰色填充它,即使我将 alpha 设置为 0.6,颜色也会是纯色而没有任何透明度。 :
导入 UIKit
class MyView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func drawRect(rect: CGRect) {
let grayOverlay = UIBezierPath(rect: rect)
UIColor(red: 34, green: 211, blue: 121, alpha: 0.6).set()
grayOverlay.fill()
}
}
我是不是遗漏了什么?
观看次数有 -opaque
属性。
由于性能原因,默认设置为 true
。如果视图不是不透明的,则需要透明混合,这会更加密集。
通过设置为 false
,您同意在您的视图和显示在其下的内容之间保持透明。
我在 drawRect 中遇到透明度问题。我有一个自定义的 UIView。如果我绘制一个矩形贝塞尔曲线路径并用灰色填充它,即使我将 alpha 设置为 0.6,颜色也会是纯色而没有任何透明度。 :
导入 UIKit
class MyView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func drawRect(rect: CGRect) {
let grayOverlay = UIBezierPath(rect: rect)
UIColor(red: 34, green: 211, blue: 121, alpha: 0.6).set()
grayOverlay.fill()
}
}
我是不是遗漏了什么?
观看次数有 -opaque
属性。
由于性能原因,默认设置为 true
。如果视图不是不透明的,则需要透明混合,这会更加密集。
通过设置为 false
,您同意在您的视图和显示在其下的内容之间保持透明。