在我的应用程序中,我使用 drawRect 在 UIImage 中绘制一些文本。它在多个地方写了多个东西。后来,我尝试使用
删除一些文本CGContextSetBlendMode(context, kCGBlendModeClear);
CGPoint daPoint = CGPointMake(second.x + 20, second.y + 20);
NSDictionary *textAttributes = @{ NSFontAttributeName: [UIFont boldSystemFontOfSize:25.0],
NSForegroundColorAttributeName: [UIColor clearColor] };
[textString drawAtPoint:daPoint withAttributes:textAttributes];
除了文本中遗留了一个细小的笔划外,这几乎完美无缺。我使用相同的代码来绘制文本,就像我删除一样,除非我在绘制时使用 kCGBlendModeNormal
。我怎样才能完全摆脱它?我可以绘制一个框并使用 kCGBlendModeClear 填充它吗?这是当前删除前的样子:
删除后:
最佳答案
如果您认为确实有必要“删除”文本,我会获取文本的边界矩形,然后调用 CGContextClearRect
并填充背景色。如果您只是简单地“重绘”您的矩形,那可能是解决此问题的另一种方法。
以下是获取边界框以进行清除的方法:
CGSize textSize = [textString sizeWithAttributes:textAttributes];
CGRect textFrame = CGRectMake(daPoint.x, daPoint.y, textSize.width, textSize.height);
希望这对您有所帮助!
关于ios - 以编程方式将文本放入 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770906/