gpt4 book ai didi

ios - Crossfade 多个 UIViews 没有背景通过 alpha 偷看?

转载 作者:行者123 更新时间:2023-11-29 02:31:49 33 4
gpt4 key购买 nike

我需要从一组 View 交叉淡入淡出到另一组 View 。这些观点背后有时有一个背景。如果我使用 animateWithDuration: v1.alpha = 1.0, v2.alpha = 0.0 进行简单的交叉淡入淡出,那么在动画过程中您将短暂地看到背景,因为两个 alpha 0.5 堆叠在一起的 View 没有最终效果alpha 为 1.0,他们的最终 alpha 我相信是 0.75,因此你可以看到背景。

有一个UIView方法transitionFromView:toView:...,如果您指定动画选项CrossDissolve,它允许您实现理想的交叉淡入淡出,但是,如果您同时运行其中两个,即使在完全独立的情况下,此方法也会失败意见,这是一项要求。也就是说,如果我开始从A到B的transitionFromView,然后立即从C到D的transitionFromView,第一个就会崩溃。

是否有另一种方法可以实现不会中断的正确交叉淡入淡出? CoreAnimation 是否有任何用于正确交叉淡入淡出的库?或者我可以使用一些技巧来通过常规 UIView 动画来实现它?

最佳答案

我假设 v1v2 之上(如果它们具有相同的父级,则在 subviews 数组之后),并且你想要 v1 出现,v2 消失。

根本不需要为 alpha v2 设置动画。只需将 v1 的 alpha 从 0 设置为 1。当动画结束时,您可以根据需要将 v2 的 alpha 设置为 0,并将其从 View 层次结构中删除.

[UIView animateWithDuration:0.2 animations:^{
v1.alpha = 1;
} completion:^{
v2.alpha = 0;
[v2 removeFromSuperview];
}];

关于ios - Crossfade 多个 UIViews 没有背景通过 alpha 偷看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768502/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com