2013-06-30 2 views
1

Рассмотрение 2 мнения; непрозрачный (серый) цвет покрывает один с графикой. Я хочу получить эффект, например, если erazer скользит по пути с определенной скоростью и стирает непрозрачный цвет в прозрачный, раскрывая подстилающий графический вид (см. Изображение).Erazor effect on UIView

Единственный подход, который я мог бы придумать, состоит в том, чтобы иметь значительно много мелких представлений вместо непрозрачного вида и анимировать их. Но это кажется немым и тяжелым решением.

У меня никогда не было никакого сильного опыта с CoreGraphics и CoreAnimation, и чтение документов на них может ввести в заблуждение для noob. Поэтому я спрашиваю, может ли кто-нибудь дать мне толчок, что читать и где копать. Любая помощь приветствуется.

enter image description here

+0

Вы хотите, чтобы ластик перемещался по предопределенному пути ('CGPath' или' UIBezierPath') или следил за прикосновением пользователя? –

+0

@robmayoff, без контакта пользователя, предопределено – user1244109

ответ

3

Простейшим решением является превратить ваше мышление. Не представляйте, как стереть серый цвет, чтобы показать изображение. Представьте, как рисовать изображение поверх серого.

Как вы это делаете, вы помещаете серый вид позади изображения, а в качестве маски слоя изображения вы используете CAShapeLayer. Установите путь «ластик» в качестве слоя формы path. Установите размер слоя lineWidth на любую ширину, которая вам нравится. Установите fillColor на номер [UIColor whiteColor].CGColor.

Если вы это сделаете, вы увидите изображение по пути и серое в другом месте.

Чтобы оживить движение «ластик», добавьте CABasicAnimation к слою фигуры. Анимация strokeEnd объекта формы @0.0f до @1.0f.

+0

Это замечательно! Спасибо, что поделились. Не знаю, могу ли я сделать это легко, но это отлично для начала. Еще раз спасибо. – user1244109

+0

Почему бы не просто нарисовать широкую белую линию? Как он откроет изображение? –

+1

@SteveWaddicor Читайте о ["Свойства маски" в * Руководстве по программированию ядра *) (http://developer.apple.com/library/ios/DOCUMENTATION/Cocoa/Conceptual/CoreAnimation_guide/LayerStyleProperties/LayerStyleProperties.html#// apple_ref/DOC/UID/TP40004514-CH10-SW21). –

2

Просто рисовать на сером с точки зрения [UIColor clearColor]; Там, где появляется прозрачный цвет, он отображает основное представление.

Вам нужно будет установить вид серым как непрозрачный = НЕТ первым. Это не сделает вид серого невидимым, это всего лишь намек на iOS, что есть прозрачные части.

+0

Спасибо! не думал, что это сработает. Попытаюсь. – user1244109