Я хотел бы сделать светящийся текст, который выглядит, если он сияет или пропускает свет. На самом деле это будет сделано с некоторой размытой в фоновом режиме. Но я ничего не нашел в iPhone SDK, который бы это сделал.
Есть ли доступный способ или библиотека, чтобы позволить свету?
Ответ 1
Вы можете сделать это, используя чистый рисунок кварца. Внутри -drawRect: для UIView или -renderInContext: для CALayer следующий код будет рисовать текст и применять свечение вокруг него:
CGContextSetShadowWithColor( context, CGSizeMake( 0.0, 0.0 ), 20.0f, glowColor );
[text drawAtPoint:CGPointMake(0.5f, 0.5f) withFont:[UIFont fontWithName:@"Helvetica" size:16.0f]];
где текст - NSString, а glowColor - это CGColorRef для свечения, которое вы хотите применить. В этом примере будет показано свечение, которое вытесняет 20 пикселей из 16-позиционного текста Helvetica и центрируется по тексту.
Вы можете легко преобразовать это в тень, предоставив другое смещение (второй аргумент в первой функции) и используя черный CGColor для тени.
Ответ 2
Как насчет рендеринга текста в первоначально прозрачный буфер с использованием желаемого цвета свечения, затем примените к нему размытие, а затем снова визуализируйте текст поверх текста в нужном цвете текста.
Затем вы можете нарисовать буфер, где бы он ни находился.
См. также ответы на "Как создать размытый текст в представлении iPhone?" , который предполагает, что Cocoa Touch не имеет встроенных фильтров размытия. Вы можете написать свое собственное, конечно.
Ответ 3
Я создал простой проект iOS4, основанный на ответе выше от Барда Ларсона и Cocoanetics в моем блоге, нажмите здесь для получения дополнительной информации и источника проекта