2014-02-12 5 views
1

Я пытаюсь сделать кроссфейд между двумя изображениями, но когда вы вызываете функцию обмена фотографиями, все становится белым и появляется вскоре после второго изображения, и переход не происходит. Что я делаю не так?Crossfade image with CABasicAnimation не работает ios

благодарит

Мой код:

#import <QuartzCore/QuartzCore.h> 

#define QT_IMG_HOME 2 

@interface UFHomeViewController() { 
    int idxImgBG; 
} 

@end 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view. 
    idxImgBG = 1; 
    [self performSelector:@selector(changeBGImage) withObject:nil afterDelay:3.0]; 
} 

-(void)changeBGImage { 
    if(idxImgBG < QT_IMG_HOME) 
     idxImgBG = idxImgBG + 1; 
    else 
     idxImgBG = 1; 

    UIImage *image1 = _imgBG.image; 
    UIImage *image2 = [UIImage imageNamed:[NSString stringWithFormat:@"home%d.jpg", idxImgBG]]; 

    CABasicAnimation *crossFade = [CABasicAnimation animationWithKeyPath:@"contents"]; 
    crossFade.duration = 1; 
    crossFade.fromValue = (__bridge id)(image1.CGImage); 
    crossFade.toValue = (__bridge id)(image2.CGImage); 
    [_imgBG.layer addAnimation:crossFade forKey:@"animateContents"]; 

    _imgBG.image = image2; 

    [self performSelector:@selector(changeBGImage) withObject:nil afterDelay:4]; 
} 

ответ

0

Это решаемые. Проблемы с моим устройством.

+2

Это не очень хороший ответ. Пожалуйста, объясните, в чем проблема вашего устройства и почему он остановил вашу анимацию от работы. – TigerCoding

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