iOS UIView子类将透明文本绘制到背景中

时间:2014-12-28 01:57:20

标签: ios objective-c iphone uiview

我想在UIView上的子类上绘制文本,以便从文本中剪切出文本,并在视图后面显示背景,就像在此处找到的OSX Mavericks徽标一样。

  • 背景图片视图
  • IBOutlet UIView *ViewTest
  • IBOutlet UIlabel *labelTest alpha:0 style(显示背景图片)

http://s25.postimg.org/tkf1sa3x9/1122.png

我想说我是一个中级/早期高级iOS开发人员,所以请随意向我提出一些疯狂的解决方案。我希望我必须覆盖drawRect才能执行此操作。

1 个答案:

答案 0 :(得分:1)

一种方法是使用图层蒙版。将文本渲染到图像上,并将该图像设置为图层的蒙版,并将该图层指定为视图的蒙版。

// 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是您呈现纯文本的图像。