关于ios push转场的时候一级界面一些控件会有短暂停留的问题
来源:互联网 发布:javascript入门 pdf 编辑:程序博客网 时间:2024/05/21 17:07
今天遇到一个问题,这里记录一下,问题描述如标题。
一级页面如下图所示:
二级页面如下图所示:
跳转过去以后,下面的按钮会有一个短暂的停留,然后才会消失。
后面发现是因为设置self.view的默认位置引起的,因为从ios7以后,navigation controller的view的Y默认是从navigation bar的顶部开始,所以view的所有子控件可能会和你预想的偏差44px,所以我在二级页面中设置了view从navigation bar的底部开始,代码如下:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { self.edgesForExtendedLayout = UIRectEdgeNone; }
这里要注意的是edgesForExtendedLayout这个枚举类型
typedef NS_OPTIONS(NSUInteger, UIRectEdge) { UIRectEdgeNone = 0, UIRectEdgeTop = 1 << 0, UIRectEdgeLeft = 1 << 1, UIRectEdgeBottom = 1 << 2, UIRectEdgeRight = 1 << 3, UIRectEdgeAll = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight} NS_ENUM_AVAILABLE_IOS(7_0);
如果设置成 self.edgesForExtendedLayout = UIRectEdgeBottom;那么就会self.view.frame是从navigationBar下面开始计算一直到屏幕底部;
如果设置成 self.edgesForExtendedLayout = UIRectEdgeNone;那么就会self.view.frame是从navigationBar下面开始计算一直到屏幕tabBar上部;
如果设置成 self.edgesForExtendedLayout = UIRectEdgeTop;那么就会self.view.frame是从navigationBar上面计算面开始计算一直到屏幕tabBar上部;
所以当我设置为UIRectEdgeNone时,其实二级页面的view是不包含下面高度为44px的这块区域的,在转场的时候才会出现短暂停留的情况。
将self.edgesForExtendedLayout设为UIRectEdgeBottom就可以解决这个问题了。
- 关于ios push转场的时候一级界面一些控件会有短暂停留的问题
- 短暂的停留
- 关于iOS push一些问题的理解
- iOS开发push到下一个界面的时候,隐藏tabBar
- 解决APP启动会有短暂的白屏出现
- iOS navigationbar push的时候出现闪色问题?
- 关于NDoc在生成帮助文档的时候会出现的一些问题
- iOS导航栏pop的时候出现短暂蓝色
- 避免应用冷启动时候的短暂黑屏的问题
- 关于一级数组和二级数组的一些问题
- iOS push的问题
- 关于开机时候的一些问题
- iOS 键盘初始化的过程有短暂延迟
- 关于Activity的转场动画失效问题
- 十年码工路——汤森路透的短暂停留
- IOS中如何设置启动界面的停留时间
- IOS开发无数据的时候界面的显示问题
- 关于iOS的一些问题
- FreeMarker之制作自定义标签及遍历
- 单例设计模式(饿汉式和懒汉式)
- JPA教程:JPA概述、JPA实体生命周期、JPA实体映射关系、JPA查询语言
- Tornado框架知识系列之二
- BLE蓝牙hid键盘表
- 关于ios push转场的时候一级界面一些控件会有短暂停留的问题
- 20170801 JAVA查找0-100质数并输出
- PHP静态成员变量和非静态成员变量
- 二叉树的创建,插入,删除,输出,求高度,求度以及三种遍历方式实现
- Chapter 2 The Graphics Rendering Pipeline
- 计算结果总是100的程序
- ZCMU新人训练赛A
- 华为OJ——24点游戏算法
- 【poj 1383】Labyrinth