【发布时间】:2017-04-24 09:03:41
【问题描述】:
我有一个单元格,它是一个视图,包含其他视图,它从Expectations 图像形成一个单元格
我需要以不同的透明度显示它,并且设置背景颜色 alpha 值的情况不合适,仅将 alpha 设置为整个视图,在测试场中它设置了我需要的三个带有 alpha 的视图,但面对下一个麻烦
blue view alpha = 1.f
red view alpha = 0.5f
green view alpha = 0.75f
透明视图相互重叠,在屏幕截图中,您可以看到透明红色视图在透明绿色视图下“可见”。 所以我需要排除下面的红色视图,顶部有绿色视图的面具。
有什么建议可以实现吗?任何返回 UIBezierPath 并排除图形或路径的方法?
更新 1
视图必须是透明的,因为在它们后面是图像,视图的目的是“评论单元格”。所以用户必须把cmets和背景图片彻底的cmets留下
【问题讨论】:
-
如果您不想看到下面的内容,为什么要透明视图?您可以根据自己的期望调整颜色值。
-
“期望”图像下方是图像,这些单元格是照片上的 cmets。并且它需要具有不同的值是透明的。
-
如果视图必须重叠,直接设置视图的alpha值肯定行不通。您需要覆盖视图绘制代码并在图形上下文中填充颜色。您需要有非常健壮的代码来计算应该用颜色“填充”的区域。
-
我知道我需要自己画,但我希望这将是我的麻烦的最后一个实例,我正在寻找一些更优雅的方法,我采用“绿色视图”的形式”,并用面具或类似的东西排除“红色视图”的相交区域
-
您的想法是正确的...您可以找到许多使用一条路径剪切另一条路径等的示例。一些示例:1.stackoverflow.com/questions/1021801/cgpathref-intersection 2.stackoverflow.com/questions/14411765/… 3.@987654325 @ .那么最复杂的部分是找到这些路径的“相对”位置以进行掩蔽/相交/剪辑。
标签: ios objective-c draw mask uibezierpath