2013-11-11 2 views
2

Ну, у меня есть UIImageView, что я хочу, чтобы оживить свои изображения с помощью «animationImages», как вы можете увидеть здесь:UIImageView animationImages с UIImage «resizableImageWithCapInsets»

UIImage *img1 = [[UIImage imageNamed:@"image1.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 150, 20, 150)]; 
UIImage *img2 = [[UIImage imageNamed:@"image2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 150, 20, 150)]; 
self.imgStatus.animationImages = [NSArray arrayWithObjects:img1, img2, nil]; 
self.imgStatus.animationDuration = 1; 
self.imgStatus.contentMode = UIViewContentModeScaleToFill; 
[self.imgStatus startAnimating]; 

Ширина двух изображений меньше, чем де ширину UIImageView, поэтому я хочу, чтобы эти изображения изменялись, когда анимация отображает их. Однако анимация не делает никаких резиз с помощью «resizableImageWithCapInsets» и просто масштабирует их, чтобы заполнить рамку UIImageView.

Есть идеи? Как мне это сделать?

Спасибо!

ответ

1

Ну, решение, которое я нашел, заключается в том, что все UII-массивы массива должны быть изменены до начала анимации. Таким образом, я создаю эту категорию UIImageView с помощью процедуры, аналогичной настройке setAnimationImages, но внутри нее все UIImages изменяются по кадру UIImageView. Также свойство ContentMode для UIImageView устанавливается как «UIViewContentModeScaleToFill».

И, наконец, очень важно, чтобы каждый UIImage ранее устанавливал «resizableImageWithCapInsets», чтобы знать, как изменять размер каждого из них.

Пример:

#import "UIImageView+AnimationImages.h" 

UIImage *img1 = [[UIImage imageNamed:@"image1.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 150, 20, 150)]; 
UIImage *img2 = [[UIImage imageNamed:@"image2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 150, 20, 150)]; 

[self.imgView setAnimationImagesWithUIImageViewSize:[NSArray arrayWithObjects:img1, img2, nil]]; 

self.imgView.animationDuration = 1; 

[self.imgView startAnimating]; 

Вы можете найти эту категорию (UIImageView + AnimationImages) here

Смежные вопросы