3

viewDidLoad または viewDidAppear メソッドで単純な UIView アニメーションを試みていますが、アニメーション化されません。

UIImage *bluredScreenshot = [self.parentViewControllerScreenshot applyBlur];

    [UIView transitionWithView:self.screenshotView duration:3.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
        self.screenshotView.image = bluredScreenshot;
    } completion:nil];

2 つの画像を単純にクロス ディゾルブします。viewDidLoad または viewDidAppear から実行すると、画像は変更されますが、アニメーション化されません。

しかし、ボタンを押した後にメソッドからアニメーションを実行すると、アニメーション化されます。なんで?奇妙に見える。

viewDidLoad メソッドから作ることは可能ですか?これをどのように解決しますか?

ありがとう。

4

3 に答える 3

3

スクリーンショットをフェードインする必要があります。2 つの画像を使用している場合は、一方の画像ビューを他方の上に配置する必要があります。これを viewDidAppear 内にポップ: [super viewDidAppear:animated]; を呼び出した後

UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.screenshotView.frame];
[self.view addSubview:imageView];
    [imageView setAlpha:0.0f];
    imageView = blurredScreenshot;
    [UIView animateWithDuration:0.3f animations:^{
                [imageView setAlpha:1.0f];
            } completion:^(BOOL finished){
                self.imageView.image = blurredScreenshot;
                [imageView removeFromSuperview];
}];
于 2013-10-26T00:08:29.237 に答える