2012-03-15 4 views
4

フェードインフェードアウトエフェクトも使用する画像ビューでスライドショーを作成しようとしています。イメージビューでのスライドショーのフェード。 xCode 4.2

これまで行ってアイブ: は、私が今したいことは、彼らが、フェードインとフェードアウトするたびに画像を作るために5秒遅れで次々に表示されない

画像、ある

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    animationView = [[UIImageView alloc] initWithFrame:self.view.frame]; 
    animationView.animationImages = [NSArray arrayWithObjects: 
            [UIImage imageNamed:@"photo1.jpg"], 
            [UIImage imageNamed:@"photo2.jpg"], 
            [UIImage imageNamed:@"photo3.jpg"], nil]; 

    animationView.animationDuration = 5; 
    animationView.animationRepeatCount = 0; 
    [animationView startAnimating]; 
    [self.view addSubview:animationView]; 
} 
表示され、その上の任意の提案?

ご協力いただきありがとうございます

+0

これは誰にも分かりません。解決策を見つけようと数日間試してきましたが、私が思いついたのは(ちょっとしたことではありませんが)いくつかのボイドを作ってセレクタで呼び出すことです。画像をフェードインして消えるように見せたり、 (アルファを変更することによって)、うまくいけば、偽のフェード感を与えます – Nick

答えて

6

私は同様のことをやろうとしていました。私がしたのはUIViewtransitionWithViewというUIImageViewのタイマーで、スライドショーの写真の配列を増やしていた。

- (void)viewDidLoad{ 
[super viewDidLoad]; 
self.welcomePhotos = [NSArray arrayWithObjects:@"welcome_1.png",@"welcome_2.png", @"welcome_3.png", nil]; 
self.imageView1.image = [UIImage imageNamed:[self.welcomePhotos objectAtIndex:0]]; 
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES]; 
} 


-(void)transitionPhotos{ 

if (photoCount < [self.welcomePhotos count] - 1){ 
    photoCount ++; 
}else{ 
    photoCount = 0; 
} 
[UIView transitionWithView:self.imageView1 
        duration:2.0 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^{ self.imageView1.image = [UIImage imageNamed:[self.welcomePhotos objectAtIndex:photoCount]]; } 
       completion:NULL];  
} 
+0

'.h'に' photoCount'をどのように宣言しますか? –

+0

photoCountは@implementationの下でstatic int photoCountとして宣言できます。 – EHarpham