在iOS上present一个半透明的viewController

原创 2013年12月06日 20:32:52

今天尝试着在一个ViewController上面调用:

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated

来展示一个半透明的viewController:

    UIViewController *vc = [[[UIViewController alloc] init] autorelease];
    vc.view.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
    [self presentModalViewController:vc animated:YES];

这样可以发现在动画过程中是半透明的,但是动画结束后就看不到下面一个viewController的内容了,变黑色了。

为什么呢?搜索了一番得到一份比较合理的结论:

The “problem” is that iOS is very finicky about not wasting memory,

and since the modal view will completely cover the one beneath it,

it doesn’t make much sense to keep it loaded.

Therefore, iOS unloads the view that presents the modal one.

You may check this behavior by implementing -viewWillDisappear: and -viewDidDisappear:.

最终在SO上找到这么个问题,以及一份可行的方案

viewController.view.backgroundColor = [UIColor clearColor];
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[rootViewController presentModalViewController:viewController animated:YES];

这里有两个点:一是设置modalPresentationStyle为UIModalPresentationCurrentContext,二是需要在rootViewController上操作。

UIViewController 推出另外一个半透明的UIViewController

http://my.oschina.net/starmier/blog/364383 效果图如下所示:           说明:上面的半透明视图1(ViewController...

如何弹出半透明UIViewController

为了更好的显示效果,想要弹出一个半透明UIViewController,刚开始以为只要把目标ViewController的背景设成半透明就行了,哪知动画结束后,背景就变黑了。 百度了一下,还是可以实现...
  • czrjdl
  • czrjdl
  • 2016年08月04日 22:12
  • 385

iOS presentViewController背景色透明

废话少说:presentViewController背景色透明。
  • Aaidong
  • Aaidong
  • 2015年09月24日 05:17
  • 3097

present出ViewController的页面为透明的

present出ViewController的页面为透明的
  • a_ss_a
  • a_ss_a
  • 2015年08月19日 20:07
  • 947

iOS8下 presentViewController的透明部分 变成黑色不透明了

iOS8下 原来presentViewController的画面(不是全画面,画面以外地方透明)的透明部分 变成黑色不透明了 换句话说,self.modalPresentationStyle...

Vue2踩坑记-Eslint

写Vue2的模块化的时候,代码格式稍微不规范,比如:多打了一个空格、没有正确缩进等等,都会报错,报错的意思 就是说 ‘空格多了’、‘缩进不正确’布拉布拉…. 还以为vue2和Jade一样对代码的缩进...

Android开发 关于软键盘的 打开与关闭

1、打开(显示软键盘) //得到InputMethodManager的实例 InputMethodManager  inputMethodManager= (InputMethodManager...

iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis

@上一章,介绍了主要的iOS7所增加的API,可以发现,它们不是一个个死的方法,苹果给我们开发者提供的是都是协议接口,所以我们能够很好的单独提出来写成一个个类,在里面实现我们各种自定义效果.     ...

Objective-C弹出模态学习之Present ViewController Modally

Present ViewController Modally 一、主要用途  弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewCont...
  • yxys01
  • yxys01
  • 2016年05月26日 15:14
  • 449

IOS Present ViewController详解

一、主要用途   弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerControll...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在iOS上present一个半透明的viewController
举报原因:
原因补充:

(最多只允许输入30个字)