2012-01-03 25 views
0

如何在一个视图中一个接一个地显示两个图像,我有两个图像命名为image1和image2,当用户打开一个特定的页面时,它想显示image1,然后在2秒后image1散开并显示image2,然后在2秒后image2 disappers并显示image1并继续。我希望你能理解我的问题。如何做到这一点。 在此先感谢。如何在一个视图中一个接一个地显示两个图像,反之亦然?

+0

请结算MadhavanRP答案。我猜它做形象东西的repetation完美的方式... – 2012-01-03 08:11:07

回答

2

你可以做到这一点

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

[imageViewObj setImage:[UIImage imageNamed:@"Image1.png"]]; 

NSTimer *ImgChangeTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 
                target:self 
               selector:@selector(changeImage) 
               userInfo:nil 
               repeats:YES]; 

} 

-(void)changeImage 
{ 
if (imageViewObj.image==[UIImage imageNamed:@"Image1.png"]) 
{ 
    [imageViewObj setImage:[UIImage imageNamed:@"Image2.png"]]; 

} 
else 
{ 
    [imageViewObj setImage:[UIImage imageNamed:@"Image2.png.png"]]; 
} 
} 
+0

什么是imageViewObj? – stackiphone 2012-01-03 05:45:49

+0

imageViewObj是UIImageView类的对象。我通过XIB取得了UIImageView。 – Bonnie 2012-01-03 05:49:20

+0

它不工作,我把一个imageview在xib中,并创建imageViewObj作为iboutlet名称 – stackiphone 2012-01-03 06:08:58

0

你需要做的是 -

- (void)animateImages:(NSMutableArray *)ppls index:(int)i 
{ 
i += 1; 
[imageView1 setAlpha:0.0]; 
[imageView2 setAlpha:0.0]; 
[UIView animateWithDuration:0.5 
         delay:2 
        options:UIViewAnimationOptionCurveEaseIn 
       animations:^(void) 
{ 
    [imageView1 setAlpha:1.0]; 
} 
       completion:^(BOOL finished) 
{ 
    if(finished) 
    { 
     [UIView animateWithDuration:0.5 
           delay:0 
          options:UIViewAnimationOptionCurveLinear 
          animations:^(void) 
      { 
       [imageView1 setAlpha:0.0]; 
       [imageView2 setAlpha:1.0]; 
      } 
          completion:^(BOOL finished) 
      { 
       if(finished) 
       { 
        [self animateImages index:i]; 
       } 
      }]; 
    } 
}]; 
} 
+0

谢谢你的回复,让我chk。 – stackiphone 2012-01-03 05:32:58

0

您应该使用一个UIImageView来执行此类型的动画。将其属性animationImages设置为您的图像阵列。

myImageView.animationImages=[NSArray arrayWithObjects:image1,image2,nil]; 
myImageView.animationDuration=1;    //in seconds 
//myImageView.animationRepeatCount=0; 

animationRepeatCount默认为0。您可以设置的次数,你希望动画重复

相关问题