我有UIImageView
使用以下代码进行动画处理:
NSMutableArray *imageArray = [[NSMutableArray alloc] init];
for(int i = 1; i < 15; i++) {
NSString *str = [NSString stringWithFormat:@"marker_%i.png", i];
UIImage *img = [UIImage imageNamed:str];
if(img != nil) {
[imageArray addObject:img];
}
}
_imageContainer.animationImages = imageArray;
_imageContainer.animationDuration = 0.5f;
[_imageContainer startAnimating];
我现在想要的是重复图像以获得图案。有colorWithPatternImage
,但这不适用于动画。
我希望整个背景充满动画图案。 而不是使用非常大的图像(960x640),我可以使用64x64的图像,并重复它以填充屏幕。
有什么办法吗?
答案 0 :(得分:3)
保持代码不变,而是使用UIImageView
使用我的子类:
//
// AnimatedPatternView.h
//
#import <UIKit/UIKit.h>
@interface AnimatedPatternView : UIImageView;
@end
//
// AnimatedPatternView.m
//
#import "AnimatedPatternView.h"
@implementation AnimatedPatternView
-(void)setAnimationImages:(NSArray *)imageArray
{
NSMutableArray* array = [NSMutableArray arrayWithCapacity:imageArray.count];
for (UIImage* image in imageArray) {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0);
UIColor* patternColor = [UIColor colorWithPatternImage:image];
[patternColor setFill];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextFillRect(ctx, self.bounds);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[array addObject:img];
}
[super setAnimationImages:array];
}
@end
如果使用界面构建器创建视图,则只需在身份检查器中设置图像视图的类。