UIView 动画过渡卷曲与透明背景

Posted

技术标签:

【中文标题】UIView 动画过渡卷曲与透明背景【英文标题】:UIViewAnimationTransitionCurlUp with transparent background 【发布时间】:2011-08-12 01:40:36 【问题描述】:

我正在使用UIViewAnimationTransitionCurlUp 实现一个相当标准的UIView 动画。基本的想法是我在屏幕上有一个文件夹,上面覆盖着一堆页面,当我从一个页面切换到另一个页面时,我使用 curl up 动画。每个页面都是一个子视图,占据了大约 70% 的屏幕,因此剪贴板在背景中仍然可见。

这个动画一切正常,问题是即使每个“页面”(这是一个单独的UIViewControllerUIView)都有一个透明的背景,页面背景在页面卷曲期间变得可见。它只是略微可见,就像 alpha 为 0.1 的黑色背景。但它破坏了效果。

有什么想法吗?这是针对不会在应用商店分发的私有应用程序,因此私有 API 是可以的。

【问题讨论】:

【参考方案1】:

您需要将页面视图控制器的view 的大小更改为与页面图像的大小完全相同。从您包含的图像中可以看出,您的页面也已旋转。您可以对视图应用旋转以匹配此旋转。下面是我用来实现截图效果的部分代码:

[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];

CGRect pageViewRect = CGRectMake(0, 0, 300, 586);
self.pageViewController.view.frame = pageViewRect;
self.pageViewController.view.transform = CGAffineTransformMakeRotation(-M_PI/30);

[self.pageViewController didMoveToParentViewController:self];

【讨论】:

以上是关于UIView 动画过渡卷曲与透明背景的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用深色透明色的背景视图?

iOS 7 UINavigationController 过渡到 UITableView:动画期间的黑色半透明层

透明背景div上的背景颜色过渡效果?

UIView的不透明alpha和背景颜色之间有什么关系?

修复后 Safari 背景颜色过渡为透明。漏洞?

CSS ONLY 动画绘制圆与边框半径和透明背景