我创建了一个自定义UIView,它使用Quartz覆盖了drawRect方法。我最终设法让一切都按照我想要的方式工作,但是有一种非常特殊的行为让我无法理解。
如果我使用定义为=>的自定义UIView; (@interface TagView:UIView) 将它的alpha值设置为1然后它完全按照我的预期绘制。
我遇到的问题是,在一个特定的实例中,我希望它以0.3的alpha值绘制,所以我将视图添加到IB的alpha为0.3。我使用CGContextSetRGBStrokeColor和CGContextSetRGBFillColor绘制了许多具有不同RGB值的工件。这些都可以正常工作,直到我尝试为所有3个RGB值设置非零值。
说明我是否使用: CGContextSetRGBStrokeColor(context,1,1,0,1); 然后我得到一条黄线。 如果我使用: CGContextSetRGBStrokeColor(context,1,1,0.001,1); 我什么都没得到。
似乎只要我将其中一个RGB值设置为0就很高兴并且绘制但是只要所有三个值都非零,它就会失败。当视图的alpha设置为1.0时,这一切都正常工作(即我可以绘制白色而没有任何问题)。
是否有人对可能导致此问题的原因或如何诊断问题有任何想法或建议?
答案 0 :(得分:0)
Garrrrrrr ......看起来我神秘的能力在一个论坛上发布一个问题只是为了在30秒后自己解决这个问题再次来袭! (当然这是在拔掉头发后2天半......)。
我似乎意外地将视图的背景颜色保留为白色。 0.3阿尔法实际上并不是很明显。白色的白色==看不见,所以我怀疑这就是为什么线条不可见。我原本以为ALMOST黄色会出现,但情况似乎并非如此。
答案 1 :(得分:0)
尝试将自定义视图的opaque
- 属性设置为NO
。