ios视图frame和bounds的对比
子视图实际位置=父视图实际位置-父视图bounds坐标+子视图frame坐标
一、bounds
只影响“子视图”相对屏幕的位置,修改时不会影响自身相对屏幕的位置
bounds坐标:自己定义的坐标系统,setbound指明了本视图左上角在该坐标系统中的坐标,
默认值(0,0)
二、frame
修改时改变了自己的在父视图坐标系统(bounds坐标系统)的位置,自身位置和
子视图位置都会被改变。
frame坐标: 子视图左上角在父视图坐标系统(bounds坐标系统)中的坐标,默认值(0,0)
三、图表解释
先看到下面的代码你肯定就明白了一些:
-(CGRect)frame{
return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
}
-(CGRect)bounds{
return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
}
很明显,某个view的bounds的原点永远是(0,0)点(就是参照该view本身的坐标系统,默认永远都是0,0点,除非认为setbounds),而该view的frame的原点却是任意的(相对于父视图中的坐标位置)。
再来看张图就明白了,
frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
bounds:该view在本地坐标(自身)系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点)
center:该view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
bounds这个属性是参照这个本地坐标系统来的。其实本地坐标系统的关键就是要知道的它的原点(0,0)在什么位置。(这个位置又是相对于上层的view的本地坐标系统而言的,当然最上面的一层view就是self.window。它的本地坐标系统原点就是屏幕的左上角了。
通过修改view的bounds属性可以修改本地坐标系统的原点位置,从而会影响该view所有的子view的坐标。
转载于:https://www.cnblogs.com/stevenwuzheng/p/5348338.html
ios视图frame和bounds的对比相关推荐
- iOS中frame和Bounds之间的区别
frame frame是每个view必备的属性,代表的是当前视图的位置和大小,没有设置他,当前视图是看不到的.位置需要有参照物才能确定,数学中我们用坐标系来确定坐标系中的某个点的位置,iOS中有他特有 ...
- iOS开发——frame和bounds详解
在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题.本篇博客以实际代码的方式来学习frame和bounds的 ...
- [iOS开发]frame和bounds
简述 Frame: 视图的位置和大小使用是父视图的坐标系,所以将视图放置在父级中这一点就很重要. Bounds:视图的位置和大小,使用的是其自己的坐标系,而对于这一点而言将视图的内容或子视图放置在其自 ...
- IOS UiView frame哪里来?
初学ios开发,frame center bounds 一直搞不清楚.最近在看wwdc session 121 UIKit Rendering 找到答案. frame 是计算属性 frame定义是父视 ...
- (0046) iOS开发之View的frame和bounds之解惑
iOS view的frame和bounds之解惑 frame: 该view在父view坐标系统中的位置和大小.(参照点是,父亲的坐标系统) bounds:该view在本地坐标系统中的位置和大小.(参照 ...
- ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
1.概要 翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下: frame:描述当前视图在其父视图中的位置和大小. bounds:描述当前视图在其自身坐标系统中的位置和大小. center:描 ...
- ios开发之UIView的frame、bounds跟center属性的区别(附图)
博文暂时想到什么写什么,不顺理成章,不顺章成篇. 先看几个概念 坐标点Poit:向右侧为X轴正方向的值x,原点下侧为Y轴正方向的值y 大小Size:由宽度width和高度height构成,表示一个矩形 ...
- iOS开发-View中frame和bounds区别
开发中调整View的时候的经常会遇到frame和bounds,刚开始看的时候不是很清楚,不过看了一下官方文档,frame是确定视图在父视图中的位置,和本身的大小,bounds确定可以确定子视图在当前视 ...
- iOS 更新自动布局,获取子视图frame
XIB 自定义Cell 或 View,有时往往要拿到里面的子视图.再在子视图上面动态添加其它控件. 在工程中,获取到的一直是初始宽度或高度是在某一手机尺寸下.在另一个手机尺寸下,不起作用,还是当初的值 ...
最新文章
- LintCode: Binary Tree Inorder Traversal
- centos7桌面登录root用户_CentOS7从一般用户切换到root用户
- atm机java+gui+oracle编程代码_java应用在哪里?
- 基于verilog的FFT设计与实现
- 使用JUnit规则测试预期的异常
- 字节跳动也取消大小周了,996内卷要终结了?
- 软件架构(8)---软件架构之架构视图
- 第十八章 35用重载比较运算符实现字符串的比较
- 于Linux下s、t、i、a权限
- HorizontalScrollView实现侧滑效果
- 【Fiddler抓包】Fiddler基础用法-基于Fiddler5中文汉化版
- DB2 数据库软件下载
- 什么杀毒软件最好|什么杀毒软件好用
- 罗永浩:做直播带货很赚钱,一晚上利润轻松几百万 比卖锤子手机过瘾
- mysqld --initialize 错误:mysqld: Can‘t create/write to file ‘G: ool\mysql\data\is_writable‘
- 用户管理和用户组管理
- php面试php数组变ahp,php实现把数组按指定的个数分隔
- 锦标赛选择算法及 matlab 实现
- android 如何查询电话当中的联系人,并查询出联系次数
- Mac下安装与使用Medis