Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS设置带动画的UIImage_Ios_Uiimage - Fatal编程技术网

iOS设置带动画的UIImage

iOS设置带动画的UIImage,ios,uiimage,Ios,Uiimage,我正在尝试使用替代图像设置UIImageView的图像。 我知道我能做到[imageView setImage:image]。但是,当我更改图像时,是否可以添加任何溶解效果(动画) 您可以通过使用动画转换来实现这一点 您正在寻找的效果称为kCATransitionFade 看一看,可以找到一些方便的教程和课堂参考。您可以通过使用动画转换来实现这一点 您正在寻找的效果称为kCATransitionFade 看一看,可以找到一些方便的教程和课堂参考。您可以使用UIView的transitionWit

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

您可以通过使用动画转换来实现这一点

您正在寻找的效果称为
kCATransitionFade


看一看,可以找到一些方便的教程和课堂参考。

您可以通过使用动画转换来实现这一点

您正在寻找的效果称为
kCATransitionFade


看一看,可以找到一些方便的教程和课堂参考。

您可以使用UIView的
transitionWithView
方法来实现这一点

示例代码段:

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

您可以使用UIView的
transitionWithView
方法来实现这一点

示例代码段:

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

我在前面已经做过,下面是一段代码,可以帮助您解决这个问题

-(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;
        }];
    }
如果需要交叉融合,可以使用此UIViewAnimationOptionTransitionCrossBlesh。
希望这能帮助您解决问题,如果没有,请尽管问。

我之前已经做过,下面是帮助您解决问题的代码。这段代码适用于您上面描述的问题

-(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;
        }];
    }
如果需要交叉融合,可以使用此UIViewAnimationOptionTransitionCrossBlesh。
希望这能帮到你,如果没有,请尽管问。

谢谢你的回答,但这对我所做的有点过分了。如果你的问题还没有解决,请解释你的要求,这样我会编辑我的答案。谢谢你的回答,但对于我正在尝试做的事情来说,这有点过分了。这将是非常有用的东西在未来。你是欢迎的。如果你的问题还没有解决。解释你的要求,这样我会编辑我的答案。