2012-03-15 102 views
4

我想在使用淡入淡出效果的imageview中制作幻灯片。在ImageView中淡入淡出幻灯片。 xCode 4.2

到目前为止,香港专业教育学院做到了这一点:

- (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]; 
} 

图像确实出现一前一后,在5秒的延迟,我现在想要的是让他们淡入和淡出每次图像出现,对此有什么建议?

在此先感谢您的帮助

+0

没有人知道这个答案吗?我一直在努力寻找解决方案,我唯一想出来的东西(这不是很好,但有点作品)是通过做出一些空白,并用选择器调用它们,我设法使图像看起来像淡入淡出一样消失(通过改变阿尔法),但那不能很好地工作,它给你一种假的褪色感 – Nick 2012-03-22 00:21:20

回答

6

我正在尝试做类似的事情。我所做的就是设置一个计时器,该计时器在UIImageView上调用UIViewtransitionWithView,该计时器在我的幻灯片照片阵列中递增。

- (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'? – 2013-04-14 22:52:11

+0

可以在@implementation下将photoCount声明为static int photoCount; – EHarpham 2013-11-23 14:24:04

相关问题