对fram,boundls的一些理解(2)
来源:互联网 发布:寰神结剧情知乎 编辑:程序博客网 时间:2024/05/19 03:29
原文地址:点击打开链接
IOS7中navigationBarHidden时view从20布局的解决方案(frame和bounds的区别)
前几天研究了下xcode5下的ios7适配,由于是以前的项目,页面来不及做ios7风格的设计,于是就要在当前UI不改变的情况下较好的兼容ios7,坐标用下面代码兼容:
在viewController中添加:
1
2
3
4
5
6
7
#ifdef __IPHONE_7_0
if
(IOS7_OR_LATER)
{
self
.edgesForExtendedLayout =
UIRectEdgeNone
;
self
.extendedLayoutIncludesOpaqueBars =
NO
;
}
#endif
这样布局大部分就能回到ios6的效果,但是发现在navigationBar是隐藏的页面,viewController的view还是从0开始布局,试了很多方法都不太完美,最后网上一搜,解决方案很简单:
1
self
.view.bounds =
CGRectMake
(0,-20,
self
.view.bounds.size.width,
self
.view.bounds.size.height);
看到这段代码,稍微研究了下,发现这么久以来竟然没有完全明白frame和bounds的区别。
我以前知道frame是view相对于其superView的坐标系中的位置,bounds是自身坐标系中的位置。
因为view的布局都是在其superView的坐标系中的,所以bounds会影响其子view的布局。如上设bounds的origin为0,-20,即规定了其坐标系的圆点坐标是(0,-20). 那么其子view的origin如果是(0,0),就会从现对于圆点(0,20)开始布局,由此解决了上述问题。
0 0
- 对fram,boundls的一些理解(2)
- 对fram,boundls的一些理解(1)
- 对fram,boundls的一些理解(3)
- 对于iOS的fram,bounds,center的理解
- iOS 仿射变换改变后对fram的影响
- 对一些概念的理解
- 对Jazz的一些理解
- 对鼠标的一些理解
- 对委托的一些理解
- 对递归的一些理解
- 对零点的一些理解
- 对c++的一些理解
- 一些对二插树的理解
- 对监控的一些理解
- 对壳的一些理解
- 一些对GIS的理解
- 对DC的一些理解
- 对Git的一些理解
- SELinux入门:了解和配置SELinux semanage
- 为么使用Redis及其产品定位 —— Redis学习笔记(二)
- 关于CDialog类的OnOK、OnCancel、OnClose和OnDestroy
- 『黑马程序员』---java--面向对象--多态+Object篇
- javaSE-多线程停止
- 对fram,boundls的一些理解(2)
- VS快捷键教程
- LeetCode | Spiral Matrix
- JavaScript中的匿名函数、回调函数、自调用函数
- 表格一条线
- Reverse Integer
- Android 输入表单实例--上下固定,中部滚动布局
- tar.bz2更快编解码方式
- awk 处理多个文件