UIView的不是透明的,下面的所有意见(UIView not transparent to all

2019-09-30 10:48发布

我工作的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 ,以略微透明的背景渐变。

Answer 1:

尝试使用GC夹功能的小圆圈。 您需要设置为夹路径它的大圆圈或逆并画出圆。

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



文章来源: UIView not transparent to all views underneath