在我的应用程序中,我使用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填充它吗?这就是目前在擦除之前的样子:
擦除后:
答案 0 :(得分:2)
我会得到文本的边界矩形,然后调用CGContextClearRect
,然后填写背景颜色,如果你认为真正需要“删除”文本。如果你只是“重绘”你的矩形,这可能是解决这个问题的另一种方法。
以下是如何获取清除的边界框:
CGSize textSize = [textString sizeWithAttributes:textAttributes];
CGRect textFrame = CGRectMake(daPoint.x, daPoint.y, textSize.width, textSize.height);
希望这有帮助!