调暗/转换当前应用程序屏幕

时间:2014-01-12 23:48:11

标签: ios modal-dialog transition user-experience interaction

如何实现动画调光/转换当前应用程序屏幕,然后在顶部显示另一个模态或视图?这是否涉及截取当前屏幕然后使用自定义转换,还是有另一种方法来实现这一目标?如果是这样,你能提供样本代码吗?

显示实现此互动的其他应用的屏幕截图可能更容易(来自Uber,Tweetbot 3.0和Tumblr应用的屏幕):

Uber

TweetBot 3.0

Tumblr

Tumblr #2

2 个答案:

答案 0 :(得分:3)

我所做的是将窗口大小的UIView放在当前视图控制器的内容视图之上,其中opaque属性设置为NO,背景颜色为背面,不透明度为50 %。然后我在上面提出了一个观点。效果很好。

您需要向当前视图控制器添加逻辑以设置和管理它。使暗覆盖视图成为出口,并将其他显示视图作为子视图放入其中。这样,您只需从视图控制器的内容视图中删除叠加视图即可使其消失。您可能还需要某种动画,在这种情况下,您可能需要单独的插座用于叠加视图和您在其上显示的内容视图。

答案 1 :(得分:2)

您可以在iOS 7中使用自定义动画过渡来执行此操作。

如果在toVC(模态)上设置modalPresentationStyle = UIModalPresentationCustom,它将在转换后保持fromVC(背景)。您还可以更改fromVC的alpha作为过渡的一部分,以使背景变暗。

查看我对WWDC会话218的示例代码的实现:使用视图控制器进行自定义转换。如果单击“选项”,您将获得一个背景暗淡的模态转换,类似于您要查找的内容。

https://github.com/soleares/SOLPresentingFun