我想在 UIView 上将文本绘制到我的子类上,以便文本从形状中剪切出来,并显示 View 背后的背景,就像在此处找到的 OSX Mavericks Logo 中一样。
- 背景图片 View
IBOutlet UIView *ViewTest
IBOutlet UIlabel *labelTest alpha:0 style (显示背景图片)
http://s25.postimg.org/tkf1sa3x9/1122.png
我会说我更像是一名中级/早期高级 iOS 开发人员,所以请随意向我抛出一些疯狂的解决方案。我希望我必须重写 drawRect 才能做到这一点。
Best Answer-推荐答案 strong>
一种方法是使用图层蒙版。将文本渲染到图像上,并将该图像设置为图层的蒙版,并将该图层指定为 View 的蒙版。
// Create your mask layer
CALayer* maskLayer = [CALayer layer];
maskLayer.frame = CGRectMake(0,0,yourMaskWidth ,yourMaskHeight);
maskLayer.contents = (__bridge id)[myTextRenderedImage CGImage];
// Apply the mask to your uiview layer
yourUIView.layer.mask = maskLayer;
myTextRenderedImage 是您呈现纯文本的图像。
关于iOS UIView 子类将透明文本绘制到背景,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27673119/
|