Поместите текст в UIView программно
В моем приложении я использую 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? Вот как это выглядит в настоящее время перед удалением:
После стирания:
1 ответ
Я бы получил ограничивающий прямоугольник текста, а затем вызвать CGContextClearRect
а затем заполните цветом фона, если вы считаете, что "стирание" текста действительно необходимо. Если вы просто "перерисовываете" свой прямоугольник, это может быть другим способом решения этой проблемы.
Вот как получить эту ограничивающую рамку для очистки:
CGSize textSize = [textString sizeWithAttributes:textAttributes];
CGRect textFrame = CGRectMake(daPoint.x, daPoint.y, textSize.width, textSize.height);
Надеюсь это поможет!