2011-01-24 5 views
1

я сделал эффект играет много изображений, как показано ниже:UIImage проблема вид анимации

NSInteger faceNum = 12; 

NSMutableArray *faceArray = [[NSMutableArray alloc] initWithCapacity:faceNum]; 

for (int i = 1;i<faceNum+1; i++) { 
    NSString *facename = [[NSBundle mainBundle] 
     pathForResource:[NSString stringWithFormat:@"animationFace%d",i] ofType:@"png"];  
    UIImage *faceImage = [UIImage imageWithContentsOfFile:facename];  
    [faceArray addObject:faceImage]; 
} 

UIImageView *faceView = [[UIImageView alloc] 
    initWithFrame:CGRectMake(414, 157, 161, 124)]; 

faceView.animationImages = faceArray;  
faceView.animationDuration = 30;  
faceView.animationRepeatCount = 0; 

[faceView startAnimating];  
[self.view addSubview:faceView];  
[faceView release];  
[faceArray release]; 

И как добавить эффект EaseInEaseOut к this.One картины постепенно исчезают, то другая картина постепенно появляются. Спасибо

+0

ваш цикла выглядит странно, как тоже – Ben

ответ

2

Нет встроенной функции затухания и выхода с функцией просмотра изображений. Вы можете достичь этого путем ручной настройки альфа двух зрения накладываются друг на друга:

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5f]; 

    imageviewToFadeOut.alpha = 0.0f; 
    imageviewToFadeIn.alpha = 1.0f; 

    [UIView commitAnimations]; 

и setImage вручную в качестве альтернативы этим UIViews.

[imageview setImage:image]; 

и рекурсивно вызывать этот метод, использовать что-то вроде [self performSelector:@selector(methodname) withObject: afterDelay: ] внутри самого метода.

Edit: Для ясности, с указанием рекурсии назвать этот метод снова и снова с задержкой:

-(void)methodname { 

.. (do your task) 
[self performSelector:@selector(methodname) withObject:NULL afterDelay:10 ]; 
} 
+0

Спасибо за ваше предложение, я уже пробовал, и он будет работать, как и ожидалось, но как добиться повторения этого всегда. –

+0

проверить изменение в ответе для ясности на нем – Ankit

+0

Это действительно работает, спасибо заранее. –