Я пытаюсь нарисовать UIView и стереть с него текст, чтобы получить эффект, подобный следующему:
До сих пор я не смог найти способ заставить текст действовать как ластик. Вот где я нахожусь:
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor whiteColor].CGColor);
CGContextFillRect(c, self.bounds);
CGContextSetBlendMode(c, kCGBlendModeClear);
CGContextSetTextDrawingMode(c, kCGTextFill);
CGContextSetFont(c, CGFontCreateWithFontName(CFStringCreateWithCString(NULL, "HelveticaNeue-Bold", kCFStringEncodingUTF8)));
CGContextSetFontSize(c, 18.0);
UIGraphicsPushContext(c);
[_text drawInRect:self.bounds
withAttributes:nil];
UIGraphicsPopContext();
Я надеялся, что CGContextSetBlendMode(c, kCGBlendModeClear);
сделает текст ластиком, но пока мне не повезло.
У меня также была идея использовать UILabel в качестве maskView, но я не знаю, как инвертировать его, чтобы текст обрабатывался как отрицательное пространство. Единственные вопросы, которые мне удалось найти при инвертировании масок, - это инвертирование CAShapeLayers или UIImages.