簡體   English   中英

當上面有 UIVisualEffectView 時,動畫 UIImageView 的圖像更改

[英]Animate image change of UIImageView when having an UIVisualEffectView above

我的問題如下:

UIImageView的視圖將隨着動畫而改變,如下所示:

[UIView transitionWithView:_backgroundArtworkImageView
                  duration:ANIMATION_DURATION
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    _backgroundArtworkImageView.image = blurredImage;
                }
                completion:nil];

只要我在圖像視圖上沒有UIVisualEffectView可以正常工作。 如果在頂部使用模糊視圖,則根本不會產生動畫。

我環顧四周,發現視圖的快照可能值得研究,這似乎也是 Apple 在 iOS 內部使用的內容,例如在打開應用程序切換器時; 我不確定如何准確地接近它。

通過拍攝快照,將其附加到超級視圖,隱藏真實視圖,在沒有動畫的情況下更改它,然后使用動畫淡入真實視圖來使其工作。

__block UIView *snapshot = [_backgroundArtworkImageView snapshotViewAfterScreenUpdates:NO];
[_artworkContainer insertSubview:snapshot belowSubview:_backgroundArtworkImageView];
_backgroundArtworkImageView.alpha = 0.0f;
_backgroundArtworkImageView.image = blurredImage;

[UIView transitionWithView:_artworkContainer
                  duration:ANIMATION_DURATION
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    _backgroundArtworkImageView.alpha = 1.0f;
                }
                completion:^(BOOL _) {
                    [snapshot removeFromSuperview];
                    snapshot = nil;
                }];

編輯:我意識到模糊視圖需要很短的時間來更新,但是為了解決可以拍攝結果視圖的新快照然后使用動畫的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM