frame vs bounds

本文解释了UIView中Frame和Bounds属性的区别与联系。Frame表示视图在其父视图坐标系中的位置和大小,而Bounds则定义了视图在自身坐标系的位置和尺寸。文章还详细说明了二者在应用中的不同行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

frame 和 bounds 是 UIView 的两个属性:

Frame: Size and location of view within superview's coordinate system.

Frame 是指该 view 在 父 view 中的大小和位置,是以父 view 的坐标作为参考。

Bounds: Size and content origin of a view in its own coordinate system.

Bounds 是指该 view 在自身坐标系统中的位置和大小,是以当前 view 的坐标作为参考。


注意:

1. bounds 的 origin 一定是 (0, 0)。

2. 当改变 frame 的 origin 时,其实改变的是该 view 在父 view 中的位置。而改变 bounds 的 origin 时, 改变的却是该 view 的子 view 在当前 view 中的位置。

3. bounds 的 size 与 frame 的 size 在大多数的情况下是相同的,但是在 view 进行旋转等操作后,这两个值就会出现差别。如下图,bounds 的 size 是 (200, 250),而 frame 的 size 是 (320, 320)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值