剖析OC中的bounds与frame的区别

博客详细探讨了OC中UI控件的bounds和frame属性的区别。bounds的width和height与frame相等,但origin默认为(0,0)。修改bounds的尺寸会保持视图中心点不变,导致视图在父视图中的位置调整。未设置frame时,bounds的调整会根据中心点移动部分超出界面。同时,子视图的bounds相对于父视图的左上角定位。" 113162456,10545631,使用MySQL进行SVN认证配置指南,"['svn', 'mysql', 'Apache认证', '数据库认证', '版本控制']
摘要由CSDN通过智能技术生成

在OC的UI控件中,我们常常会碰到两个属性frame 与bound,前者相对比较好理解,而bound有时候却比较绕,今天我们来仔细研究下bound的一些特性。

首先,我们来看下下面的代码:
这里写图片描述
通过代码,我们可以看出bounds的width值、height值与frame是相等的,只不过origin点的X 、Y默认都为0

这里写图片描述
这里写图片描述

那么如果我们修改或者重新赋值了bounds值,会发生哪些影响呢?我们来分情况进行讨论:

一 、修改bounds的width值或height值
当我们给one添加代码 one.bounds = (CGRect){0,0,80,80};通过bounds我们修改了它的width、height值(小于frame),此时在模拟器中两个view的位置变成了:
这里写图片描述
这是因为:
我们通过frame定义了一个相对父视图的一个容器,而bounds显示的是这个容器的实际区域。当bounds比frame小了,实际的显示区域就需要调整。需要注意的是在调整的过程中,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值