2012-02-04 3 views
0

Я ищу какое-то решение, касающееся пользовательского представления прогресса.Custom Shaped progress View

В принципе, я хотел бы заполнить изображение ниже, чтобы представить ход загрузки, как и у нас в играх.

enter image description here

Любые идеи, как достичь этого ??

+0

Маскируйте это так или иначе, как вам нравится - с непрозрачным UIView или используйте CGMaskRef - и высоту связующей маски до уровня загрузки. Просто как тот. –

+0

Спасибо за ваш быстрый ответ. Можете ли вы направить меня на маскировку? m noob в CG. – Hisenberg

ответ

0

Маскировка с использованием CoreGraphics:

UIImage *img = [UIImage imageNamed:@"imagetomask.png"]; 
CGImageRef maskRef = [UIImage imageNamed:@"mask.png"].CGImage; 
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
               CGImageGetHeight(maskRef), 
               CGImageGetBitsPerComponent(maskRef), 
               CGImageGetBitsPerPixel(maskRef), 
               CGImageGetBytesPerRow(maskRef), 
               CGImageGetDataProvider(maskRef), NULL, false); 

CGImageRef maskedImage = CGImageCreateWithMask([img CGImage], mask); 
[imageView setImage:maskedImage]; 

Вашего mask.png должен быть непрозрачного изображение наполнится как перевернутый альфа - черный для видимых частей, белых для прозрачного.

0

Создайте пользовательский класс вида и добавьте анимацию в этот класс, чтобы показать свои изображения в последовательности бесконечно.

Добавьте этот вид к главному окну (UIWindow *) [[UApplication sharedApplication] .windows objectAtIndex: 0];

call bringSubviewToFront, чтобы показать этот вид в любом представлении, где вы хотите этот экран загрузки (вид).