【问题标题】:UIImage is not transitioning using fade with animation block transitionUIImage 没有使用带有动画块过渡的淡入淡出进行过渡
【发布时间】:2014-06-23 16:20:11
【问题描述】:

我正在使用这样的动画块进行图像转换

[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    self.songTitleLabel.text = currentSong.songTitle;
    self.artistNameLabel.text = currentSong.songArtist;
    self.songImageView.image = currentSong.songArtwork;
}completion:^(BOOL finished){
    self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:currentSong.songLocation error:nil];
    [self.player setVolume:1.0];
    [self.player play];
}];

我不明白为什么我没有淡入淡出过渡,我尝试了几种不同的 UIAnimationOptionTransition...每次我都会突然跳转到下一张图片(文本也会发生这种情况)

谁能帮帮我?

【问题讨论】:

    标签: ios objective-c xcode objective-c-blocks uianimation


    【解决方案1】:

    您不能以这种方式为图像或文本的变化设置动画。我就是这样弄的,

    -(IBAction)doStuff:(id)sender {
    
        [UIView transitionWithView:self.imageView
                          duration:1.0
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^{
                            [self.imageView setImage:[UIImage imageNamed:@"IMG_0081.JPG"]];
                        } completion:nil];
    
        [UIView transitionWithView:self.label2
                          duration:1.0
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^{
                            [self.label2 setText:@"New Text"];
                        } completion:nil];
    }
    

    如果您要更改多个标签或图像视图,最好创建一个子类并覆盖 setText: 和 setImage:。例如,对于 setImage:,

    -(void)setImage:(UIImage *)image {
        [UIView transitionWithView:self
                          duration:1.0
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^{
                           [super setImage:image];
                        } completion:nil];
    }
    

    然后你就可以使用了,

    self.imageView.image = ...
    

    对于任何属于您的子类的图像视图,当您更改图像时它会交叉淡入淡出图像。

    【讨论】:

    • 谢谢,我不知道我必须用“带视图的过渡”来指定要过渡的每个视图
    猜你喜欢
    • 2013-11-08
    • 2015-01-17
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2012-02-04
    • 1970-01-01
    相关资源
    最近更新 更多