#ios #uiimage
#iOS #uiimage
Вопрос:
Это то, что у меня сейчас есть:
NSMutableArray *images = [[NSMutableArray alloc] initWithCapacity:21];
for(int count = 1; count <= 21; count )
{
NSString *fileName = [NSString stringWithFormat:@"dance2_d.jpg", count];
UIImage *frame = [UIImage imageNamed:fileName];
[images addObject:frame];
}
UIImage imageNamed вызывает у меня некоторые проблемы с памятью, и я хотел бы переключиться на imageWithContentsOfFile.
Я могу заставить его работать с одним изображением, но не со всем массивом:
NSMutableArray *images = [[NSMutableArray alloc] initWithCapacity:21];
for(int count = 1; count <= 21; count )
{
NSString *fileName = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/dance2_001.jpg"];
UIImage *frame = [UIImage imageWithContentsOfFile:fileName];
[images addObject:frame];
}
Любая помощь приветствуется! Спасибо!
Ответ №1:
for(int i = 1; i <= 21; i )
{
[images addObject:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"dance2_d", i] ofType:@"jpg"]]];
}
Ответ №2:
сначала вам следует создать массив с изображениями для вашей анимации примерно так:
NSMutableArray* images = [[NSMutableArray alloc] initWithObjects:
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image1" ofType:@"jpg"]],
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image2" ofType:@"jpg"]],
nil];
затем вы можете добавить его в UIImageView, чтобы анимировать его следующим образом:
UIImageView* animationImagesView = [[UIImageView alloc] initWithFrame:CGRectMake(posX, posY, frameWidth, frameHeight)];
animationImagesView.animationImages = images; //array of images to be animate
animationImagesView.animationDuration = 1.0; //duration of animation
animationImagesView.animationRepeatCount = 1; //number of time to repeat animation
[self.view addSubview:animationImagesView];
теперь вы можете запускать и останавливать анимацию с помощью этих двух вызовов:
[animationImagesView startAnimating]; //starts animation
[animationImagesView stopAnimating]; //stops animation
надеюсь, это поможет. также не забудьте освободить и обнулить ваш массив и UIImageView, когда закончите.