2012-04-24 80 views
3

我有以下代码的有线问题。在iphone上幻灯片和转换?

如果我使用这些代码,并在模拟器上运行它,他只会向我显示阵列中的前两张图片。如果我在Iphone上运行它,他会向我显示第一张照片。 也他不重复的图片.-

什么iam做错了?

- (void)viewDidLoad{ 
    [super viewDidLoad]; 

    welcomePhoto = [NSArray arrayWithObjects:@"Bild.jpeg",@"Bild1.jpeg", @"Bild2.png", nil]; 
    imageView.image = [UIImage imageNamed:[welcomePhoto objectAtIndex:0]]; 
    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES]; 
} 


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

您是否尝试过使用调试器来逐步通过您的代码? – Stefan 2012-04-24 14:00:09

回答

3

尝试在viewDidLoad中添加此项。

UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 90, 100, 100)]; 
[self.view addSubview:animatedImageView]; 
animatedImageView.animationImages = [NSArray arrayWithObjects:  
            [UIImage imageNamed:@"bild.png"], 
            [UIImage imageNamed:@"bild.png"], 
            [UIImage imageNamed:@"bild.png"], nil]; //etc 
animatedImageView.animationDuration = 3.0f * [animatedImageView.animationImages count]; 
animatedImageView.animationRepeatCount = 0; 
[animatedImageView startAnimating]; 
[self.view addSubview: animatedImageView]; 
+0

thx你的代码正在工作。如何添加转换到您的代码?有没有像我这样的其他方式? – Bashud 2012-04-24 14:12:26

1

我找到了。您应该跳过初始化transitionChotos中的photoCount。把它变成一个iVar或财产。

+0

Ahhhhhh thx。那是我的错 – Bashud 2012-04-24 14:55:28

+0

varsågod!我猜 – TompaLompa 2012-04-24 14:59:22

2

试试这个代码

NSArray *imagesArray; 
int photoCount; 
UIImageView *imageView; 
-(void)setupImageView{ 
    photoCount = 0; 
    [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"imgA.png"] ,[UIImage imageNamed:@"imgB.png"] ,[UIImage imageNamed:@"imgC.png"] ,[UIImage imageNamed:@"imgD.png"] ,[UIImage imageNamed:@"imgE.png"] , nil];   imageView =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, width, height)]; 
    imageView.image = [imagesArray objectAtIndex:photoCount]; 
    [self.view addSubview:imageView]; 
    [NSTimer scheduledTimerWithTimeInterval:20.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES]; 

} 

-(void)transitionPhotos{ 


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