У меня есть NSArray
из пяти изображений и UIImageView
. Я хочу иметь возможность медленно увеличивать размер изображения внутри ImageView в течение 5 секунд, а затем перейти к следующему изображению и так далее. Как я могу это достичь?Loop ImageView Animation iOS
ответ
Вот мое решение, он использует только 2% CPU на iPhone 6.
- (void)changeFrame{
CGRect rect = self.imageView.frame;
rect.size.width = rect.size.width +0.25;
rect.size.height = rect.size.height + 0.25;
self.imageView.frame = rect;
counter ++;
if (counter == 130) {
index ++;
if (index == images.count) {
index = 0;
}
self.imageView.image = [images objectAtIndex:index];
self.imageView.frame = firstRect;
self.myView.alpha = 0.0f;
self.myView.alpha = 1.0f;
counter = 0;
}
}
И я c все это с таймером:
index = 0;
counter = 0;
images = [[NSMutableArray alloc] init];
NSInteger animationImageCount = 4;
for (int i = 0; i < animationImageCount; i++) {
// Images are numbered IndexedImagesInMyAnimation0, 1, 2, etc...
UIImage *image = [Globals imageWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"IndexedImagesInMyAnimation%d", i]] scaledToSize:[Globals aspectScaledImageSizeForImageView:self.imageView image:[UIImage imageNamed:[NSString stringWithFormat:@"IndexedImagesInMyAnimation%d", i]]]];
[images addObject:image];
}
self.imageView.image = [images objectAtIndex:0];
self.myView.clipsToBounds = YES;
firstRect = self.imageView.frame;
timer = [NSTimer timerWithTimeInterval:0.1
target:self
selector:@selector(changeFrame)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
Вы можете использовать блоки завершения, предоставляемые UIAnimation. В блоке завершения вы также можете изменить изображение, например.
Концепция:
func animateView(view: UIView, scale: CGFloat, duration: NSTimeInterval = 1, delay: NSTimeInterval = 0)
{
UIView.animateWithDuration(duration, delay: delay, options: [.CurveEaseInOut], animations: {() -> Void in
view.transform = CGAffineTransformMakeScale(scale, scale)
}, completion: { (Bool) -> Void in
self.animateView(nextImageView, scale: scale)
})
}
Вы также можете попытаться найти Apple documentation или здесь, на StackOverflow
Моя идея для этой проблемы: я создам размер каждого изображения от мала до велика. и добавить весь массив. После этого я назначаю его анимации изображений UImageView. Я устанавливал продолжительность, повторяю счет и начинаю оживлять. Вы можете увидеть мой код:
NSMutableArray *test = [NSMutableArray array];
for (int i = 2; i <= 6; i++) {
[test addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%i", i]]];
}
for (int i = 2; i <= 6; i++) {
[test addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%ir", i]]];
}
self.imgTest.animationImages = [NSArray arrayWithArray:test];
self.imgTest.animationDuration = 10.0;
self.imgTest.animationRepeatCount = 1;
[self.imgTest startAnimating];
Решение 2: Вы можете использовать эту функцию
- (void)animate:(int)i {
if (i >= self.listImage.count) {
return;
}
[UIView animateWithDuration:5
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
self.imgTest.transform=CGAffineTransformMakeScale(1.2, 1.2);
}
completion:^(BOOL finished){
self.imgTest.transform=CGAffineTransformIdentity;
//Fade
[UIView transitionWithView:self.imgTest
duration:1.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.imgTest.image = self.test[i];
} completion:^(BOOL finished){
[self animate:i+1];
}];
}];
}
И когда начинают просто звоните:
self.imgTest.image = self.listImage[0];
[self animate:0];
Добавление большого количества изображений увеличит объем памяти –
Проверьте мой отредактированный ответ. Надеюсь, эта помощь. –
Я тестировал и работает, можете ли вы добавить некоторое изображение между изображениями? Я попытался добавить исчезновение в UIView, но тогда все мои контроллеры имеют это заклинание, и я не могу его удалить. –
- 1. ImageView Animation
- 2. UIView Animation для ImageView в ios
- 3. android imageview animation lag
- 4. Loop animation with velocity.js
- 5. ImageView Animation in Steps
- 6. Looped animation in ImageView
- 7. Android ImageView Animation
- 8. UICollectionView imageview animation
- 9. Imageview randomise animation
- 10. Animated imageview stop animation
- 11. Android Animation ImageView
- 12. Android ImageView flipping animation
- 13. Fill Imageview background animation
- 14. ImageView Onclick Animation
- 15. AS3 Loop Animation
- 16. Loop svg path animation
- 17. Loop image animation
- 18. JQuery For Loop animation
- 19. Loop animation - не идет
- 20. Loop animation with jquery
- 21. Loop animation drawable
- 22. Loop animation with svg.js
- 23. jQuery loop after animation
- 24. Imageview translate and scale animation
- 25. Android ImageView Animation не отображается
- 26. Android rotate imageview animation issue
- 27. JQuery animation loop on hover
- 28. android animation glow effect on imageview
- 29. Android Animation в прикладывается слишком рано ImageView
- 30. Android Set ImageView Animation from String
in swift/Obj c? – Jamil
Я хочу в Obj C –