Closed. 这个问题不符合堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我正在尝试创建一个UIView
with text
(the text
可能会不断变化)在其之上。我只想要text
其中的一部分UIView
透明,以便我们可以看透文字。换句话说,我希望文本部分显示内容中的任何内容superview
of the UIView
。我花了很多时间,但还没有弄清楚。任何人都有想法如何做到这一点?
你想做的事情并不是微不足道的。但只需做一点工作就可以实现。
简而言之,要使文本透明,您需要创建一个剪掉文本的 CALayer,然后将其用作当前 CALayer 的遮罩。
首先创建文本图像。您可以只创建一个 UILabel,在白色背景上使用黑色文本。当我们完成后,黑色将变得透明。白色背景的大小应与您要应用它的 UIView 的大小相同。
现在使用 UIGraphicsGetImageFromCurrentImageContext() 获取此文本的图像。这里应该有很多关于如何做到这一点的例子。
现在使用该图像创建一个新的蒙版层。通过创建一个新的 CALayer 对象并将 image.CGImage 分配给图层的“contents”属性来完成此操作。
现在将该层分配给 UIView 层的“mask”属性。该视图可能只是一个带有白色“backgroundColor”的空视图。
如果一切按计划进行,遮罩的黑色部分(文本)将使白色 UIView 透明。然后将其放在图像上。
请记住,蒙版不会产生动画。因此,如果您想顺利过渡到其他游戏,更改此蒙版将需要更多额外的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)