2012-03-13 76 views
2

我使用Quartz绘制在自定义的UIView说:“画”如何使图纸上完全透明视图中可见

我有控制器视图“viewC”

我做

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

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

我想做一个完全透明画/绘画对我的“viewC”视图

的顶部,所以我做

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

但是,这也让我的画/画透明与油漆的背景,所以,如果我还能保持完全透明的(alpha = 0.0),我看不出画本身带有油漆的观点

我想什么,而不是工作:

  • somePaintInstance.setbackgroundcolor
  • somePaintInstance.opaque

其他网站上的答案也是这样执行的

我通过抢看答案这里就不具体: How to add a transparent gradient mask to a context

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

让我知道其他细节,如果需要

问候,

+0

我也想知道如何完成上述。 – Zolomon 2012-06-13 09:04:30

回答

0

此行应该工作,

somePaintInstance.backGroundColor = [UIColor clearColor]; 
+0

已尝试不工作 – user300940 2012-03-13 07:58:22

+0

@ user300940确保您的alpha = 1.0 ?.这对我有效。 – Vignesh 2012-03-13 08:03:14

+0

backGroundColor属性在这种情况下根本不起作用,无论我把它放在哪里,我都觉得需要一些Quartz特定的函数调用,这将允许背景上下文在绘制(上下文)的同时将完全透明。不是。 – user300940 2012-03-13 08:03:56

2

我试图设置与alpha值0背景或与StartTransparentLayer工作。没有任何工作。 对我而言有效的是将视图不透明属性设置为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; 
}