博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:横向使用iPhone默认的翻页效果
阅读量:6543 次
发布时间:2019-06-24

本文共 1167 字,大约阅读时间需要 3 分钟。

大致思路使用两层辅助UIView的旋转来实现添加后的View的横向翻页效果

    CATransform3D transformA = CATransform3DRotate(CATransform3DIdentity, degreesToRadian(90), 0, 0, 1.0f);     CATransform3D transformB = CATransform3DRotate(CATransform3DIdentity, degreesToRadian(180), 0.0f, 1.0f, 0.0f);     bgview.layer.transform = CATransform3DConcat(transformA, transformB);         CATransform3D transform3DA = CATransform3DRotate(CATransform3DIdentity, degreesToRadian(90), 0, 0, 1.0f);     CATransform3D transform3DB = CATransform3DRotate(CATransform3DIdentity, degreesToRadian(180), 0.0f, 1.0f, 0.0f);         superView.layer.transform = CATransform3DConcat(transform3DA, transform3DB);

 

View的层次:superView──bgView──自己的View

 

    向bgView中添加自己的View(注:要在bgView的subViews多于一个时才有翻页效果)

    [UIView beginAnimations:@"view transition" context:nil];     [UIView setAnimationDuration:1.0];     [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:bgView cache:NO];

    [bgView addSubview:viewController.view];

 

 

这样做一是实现了横向翻页,二是保证你自己的View添加之后的方向是正确的,试试就知道为什么非要弄两层来辅助了,至于旋转后的Frame变化问题就看自己的使用情况调整了,尤其注意顶层View(添加进去的View)的Touch事件可能无法识别到,是因为底层View(bg和super View)旋转后的Frame出了问题!!!

不知道有没有其他的好方法,如果各位有更好的方法还望赐教!

转载于:https://www.cnblogs.com/lovewx/p/4010672.html

你可能感兴趣的文章
vue2.0--请求数据
查看>>
ios调试技巧
查看>>
使用mini-define实现前端代码的模块化管理
查看>>
pandas Dataframe 取某行
查看>>
BZOJ 2599: [IOI2011]Race 点分治
查看>>
接口抽象类区别
查看>>
queue 队列
查看>>
前端之JavaScript--基础
查看>>
TCP/IP TIME_WAIT状态原理
查看>>
统计数中二进制表达式中1的个数
查看>>
陶哲轩实分析 定义7.11(有限级数) 注
查看>>
20145222黄亚奇《网络对抗》信息收集和漏洞扫描技术
查看>>
Windows API 第二篇 SHGetSpecialFolderPath
查看>>
关于成员变量和局部变量是否都会被默认初始化的问题
查看>>
安卓中实现界面数据懒加载
查看>>
linux命令之ls命令的简明讲解
查看>>
django基础知识~ RBAC权限周边初探
查看>>
Integer ,==,int 的使用
查看>>
数字图像处理中所用数学工具3---算术操作处理图像
查看>>
VUE JS 使用组件实现双向绑定
查看>>