1

ほぼ正確な 2 つの画像 (ほぼアニメーション フレーム) の間でディゾルブを実行しようとしていますが、これまでのところ、ディゾルブの途中で発生する暗くなる部分を取り除くことはできません。クライアントは、このダークなディゾルブを行わないことに非常に固執していますが、何か考えはありますか?

 UIImageView *newImageView = [[UIImageView alloc] initWithFrame:imageViewSmileDesign.frame];
newImageView.image = imageViewSmileDesign.image;
[self.view addSubview:newImageView];

imageViewSmileDesign.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.jpg", result]];
imageViewSmileDesign.alpha = 0;

[UIView animateWithDuration:0.5 animations:^{
    imageViewSmileDesign.alpha = 1;
    newImageView.alpha = 0;
} completion:^(BOOL finished) {
    [newImageView removeFromSuperview];
} ];

ご覧いただきありがとうございます。

4

4 に答える 4

0

「newImageView」のアルファを 0 に変更しないでください。これにより、新しい画像が古い画像の上にフェードしてしまい、両方が半透明で背景が見える中途半端な状態にはなりません。色。

アニメーションの前にimageViewSmileDesign呼び出して前面に持ってくる必要があります。bringSubviewToFront:

于 2012-05-10T11:43:04.753 に答える
0

両方の画像に同じフレームがある場合は、単に削除してnewImageView.alpha = 0;ください。それはトリックを行います。

于 2012-05-10T11:43:30.387 に答える
0

newImageView.alpha フェードの開始を遅らせる必要があります。

于 2015-06-29T06:54:44.837 に答える
0

に組み込まれているクロス ディゾルブ アニメーションを使用できますUIView

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion

オプションを に設定しますUIViewAnimationOptionTransitionCrossDissolve

于 2012-05-10T11:32:52.967 に答える