无法在drawRect中使用颜色透明度

时间:2016-02-21 08:47:32

标签: ios swift core-graphics

我在drawRect中遇到透明度问题。我有一个自定义的UIView。如果我绘制一个rect bezier路径并用灰色填充它,即使我将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()

    }

}

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

视图有-opaque属性。
由于性能原因,默认设置为true。如果视图不是不透明的,则需要透明混合,这是更加密集的。
设置为false即表示您同意在视图与其显示内容之间保持透明。