presentModalViewController实现机制探讨

今天本来想利用ModalViewController做这样一件事情。在原有的view上该上一层半透明的view。

后来发现是不行的,虽然presentModalViewController我们看到的动画是在原有的view上盖了一层全屏的新view,但是其实下面的view被移除了。push也是一样。

即是说:虽然我们可以理解view是可以通过类似于栈结构来理解,在取之前的view时也可以通过这样一种存储方式从内存中存取,但是并不是说绘制view时是一层层叠加来绘制的。下面的view在disappear时已经被移除。可能它没有被unload,但是它已经不在当前视图内了。

所以显示时的视图大概就是这样一个层次:

---------------------------------------------------------------

各种view

---------------------------------------------------------------

viewcontroller的view或者其它某个全屏的view

---------------------------------------------------------------

window

---------------------------------------------------------------

今晚网上看了一些资料,发现其实present和dismiss一个modalviewcontroller时的动画也不一定是覆盖,还有包括翻页等等方法。下面是列举:

typedef enum {
        UIModalTransitionStyleCoverVertical = 0,
        UIModalTransitionStyleFlipHorizontal,
        UIModalTransitionStyleCrossDissolve,
        UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;

嗯,所以当时想当然了。上述描述里可能有不准确的地方,大家如果有见解可以指正~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值