iOS用动画设置UIImage

时间:2013-11-04 03:05:05

标签: ios uiimage

我正在尝试使用替代图像设置UIImageView的图像。 我知道我可以做[imageView setImage:image]。但是,当我更改图像时,是否可以添加任何溶解效果(动画)?

3 个答案:

答案 0 :(得分:3)

我之前已经完成了这个,这里有一段代码可以帮助你。这段代码可以解决你上面描述的问题。

-(void)changeImage
{
        myImageView.animationImages=[NSArray arrayWithArray:self.yourImageArray];
        myImageView.animationDuration=10.0;
        myImageView.animationRepeatCount=0;
        [myImageView startAnimating];
        myImageView.transform = CGAffineTransformMakeRotation(M_PI/2);
        [self.view addSubview:myImageView];
        //The timers time interval is the imageViews animation duration devided by the       number of images in the animationImages array. 20/5 = 4
        NSTimer *timer = [NSTimer timerWithTimeInterval:2.0
                                                 target:self
                                               selector:@selector(onTimer)
                                               userInfo:nil
                                                repeats:YES];

        [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
        [timer fire];

}

//这将淡入和淡出图像。

-(void)onTimer{
        [UIView animateWithDuration:2.0 animations:^{
            myImageView.alpha = 0.0;
        }];
        [UIView animateWithDuration:0.5 animations:^{
            myImageView.alpha = 1.0;
        }];
    }

如果你想要交叉消解你可以使用这个UIViewAnimationOptionTransitionCrossDissolve。 希望这会帮助你,如果没有请随意问。

答案 1 :(得分:2)

您可以使用UIView的transitionWithView方法来实现此目的。

示例代码段:

UIImage * newImage= [UIImage imageNamed:@"newImg.png"];
[UIView transitionWithView:self.view
              duration:3.0f
               options:UIViewAnimationOptionTransitionCrossDissolve
            animations:^{
              yourImageView.image = newImage;
            } completion:nil];

答案 2 :(得分:1)

您可以使用CAAnimation过渡

来实现此目的

您要查找的效果称为kCATransitionFade

查看herehere以获得一些方便的教程以及课程参考。