如何使全透明视图可见

时间:2012-03-13 07:31:09

标签: ios quartz-2d

我正在使用Quartz进行绘制,就像在自定义UIView中说“Paint”

一样

我有控制器视图“viewC”

我做了

[self.view addSubView:somePaintInstance]; in my viewC at some event

现在,当我绘画或绘画时,Paint的默认背景为“黑色”。

我想在“viewC”视图之上进行全透明绘画/绘图

所以我做了

somePaintInstance.alpha=0.5; (before adding it as subview) 

但是这也使我的绘画/绘画与Paint的背景透明,所以如果我使它完全透明(alpha = 0.0),我无法用绘画的视图看到绘图本身

我尝试过但不工作:

  • somePaintInstance.setbackgroundcolor
  • somePaintInstance.opaque

网上的其他答案也不适用于此类实施

我在这里看到了解答: How to add a transparent gradient mask to a context

但仍然不清楚我如何实现我想要的?

如果需要,请告诉我其他详细信息

此致

2 个答案:

答案 0 :(得分:2)

我尝试设置alpha值为0的背景或使用StartTransparentLayer。这些都没有效果。 对我有用的是将视图opaque属性设置为NO。 在我的视图的初始化程序中,我输入以下代码:

-(id)initWithFrame:(CGRect)frame {
  if (self = [super initWithFrame:frame]) {
        // set default values
        self.colorNormal = [UIHelper ricolaYellow];
        self.colorActice = [UIColor colorWithHexString:CIRCLE_COLOR_ACTIVE];
        self.capacities = nil;
        self.opaque = NO;
    }
    return self;
}

答案 1 :(得分:0)

此行应该有效,

somePaintInstance.backGroundColor = [UIColor clearColor];