如何使完全透明视图上的绘图可见
Posted
技术标签:
【中文标题】如何使完全透明视图上的绘图可见【英文标题】:How to make Drawing on Fully Transparent View Visible 【发布时间】:2012-03-13 07:31:08 【问题描述】:我正在使用 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)
但这也使我的绘图/绘画与油漆的背景透明,所以如果我让它完全透明 (alpha = 0.0),我无法在油漆的视图中看到绘图本身
我尝试过但没有工作:
somePaintInstance.setbackgroundcolor somePaintInstance.opaque网络上的其他答案也不适用于这种实现
我在这里查看了 rob 的答案: How to add a transparent gradient mask to a context
但仍然不清楚我该如何实现我想要的?
如果需要,请告诉我其他详细信息
问候,
【问题讨论】:
我也想知道如何完成上面的。 【参考方案1】:我尝试设置 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;
【讨论】:
【参考方案2】:这条线应该可以工作,
somePaintInstance.backGroundColor = [UIColor clearColor];
【讨论】:
backGroundColor 属性在这种情况下根本不起作用,无论我把它放在哪里,我都觉得需要一些 Quartz 特定的函数调用,这将允许背景上下文同时完全透明在它上面绘图(上下文)不会。 alpha = 1.0 用于什么(上下文)?你能详细说明一下吗 @user300940。好的。试试这个,CGContextClearRect(context, viewRect); 已经尝试过 ClearRect 将清除整个上下文而不是我想要的 ClearRect 所做的只是“相反”,使我的绘图“清晰”(不可见)并且默认背景“黑色”仍然存在以上是关于如何使完全透明视图上的绘图可见的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 应用程序中,如何使用透明文本制作线性视图,以便父视图可见?