UIView对

时间:2016-09-04 22:39:08

标签: ios uiview transparency alpha

我正在开发一个iOS应用程序,我遇到了以下问题:我有一个UIView,其背景颜色为alpha = 0.8,但我不希望它对所有元素都是透明的在它下面。我通过在其Draw(CGRect rect)方法中添加以下代码使其透明:

var gctx = UIGraphics.GetCurrentContext();
gctx.AddEllipseInRect(new CGRect(rect.Location, rect.Size));
gctx.SetFillColor(UIColor.FromRGB(255, 255, 255).ColorWithAlpha(0.8f).CGColor);

但是,通过这种方式,它下面的所有UIViews都是透明的。下图说明了我的意思:

大圈子有alpha = 0.8,而小圈子有alpha = 1。我想要实现的是小圆圈的一部分,在大圆圈后面是不可见的,而大圆圈有alpha = 0.2,以便对背景渐变略微透明。

1 个答案:

答案 0 :(得分:0)

尝试将gc剪辑功能用于小圆圈。 你需要将它的大圆或倒数设置为剪辑路径并绘制圆圈。

https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CGContext/#//apple_ref/c/func/CGContextClip