IOS实现翻转一个View显示presentVi…

本文介绍了一种在iOS中实现点击视图翻转并展示新ViewController内容的动画效果。通过将目标ViewController内容渲染为图片,然后创建新视图进行翻转动画,最终呈现出类似翻转卡片的效果。在实际开发中需要注意视图的帧设置、渲染问题以及Layer的Z轴索引等细节。
摘要由CSDN通过智能技术生成

最近看到了一个比较好看的动画效果,就是通过点击了一个View,被点击的View会被翻转过来,然后在其背面显示出另一个ViewController的内容。就像一张两面的板子被翻转一样。于是在最近的项目里面就写了下这个效果:

  







思路是这样的,先将被显示的ViewController的内容渲染到一张图片上去。

然后在window上面添加一个新的View将被点的View的内容渲染成图片后显示在此新建的View上,并且调整新建的view的位置。

隐藏被点View,然后开始反转动画。为了简单起见动画分为2步,第一步为旋转90度。第二步开始反向旋转90度,但是在开始之前将ViewController的图片显示在该View上。

最后将Viewcontroller Present出来就好了。


具体看代码吧

给UIViewController建一个Category,这样使用就很方便了。

所有代码在下面:

 

[html]  view plain copy
  1. (void)flipView:(UIView *)view toPresentViewController:(UIViewController *)controller completion:(void (^)(void))completion  
  2.     [self retain];  
  3.     [view retain];  
  4.     [controller retain];  
  5.     //调整大小  
  6.     UIWindow *window [UIApplication sharedApplication].keyWindow;  
  7.     CGRect frame window.frame;  
  8.     frame.size.height -20 
  9.     frame.origin.y 20 
  10.     controller.view.frame frame 
  11.     [controller.view layoutIfNeeded];  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值