千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > iOS view的frame和bounds之区别是什么?

iOS view的frame和bounds之区别是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-15 14:01:38 1697349698

一、Frame

Frame是UIView在其父视图坐标系中的位置和大小。它是一个CGRect类型的结构体,包含了视图的原点坐标和宽高信息。当我们改变一个视图的frame时,实际上是在修改它在父视图中的位置和大小,因此会影响到它的位置和显示。Frame的原点是相对于父视图的坐标系的,因此当父视图发生移动或变换时,子视图的frame也会相应地发生改变。

二、Bounds

Bounds是UIView在其自身坐标系中的位置和大小。它也是一个CGRect类型的结构体,通常情况下,它的原点都是(0, 0)。当我们改变一个视图的bounds时,实际上是在修改它自身坐标系的大小,而不会影响到视图在父视图中的位置和显示。Bounds的宽高是相对于视图自身的,因此当视图发生缩放时,它的子视图的bounds不会发生改变。

三、区别总结

Frame用于描述视图在其父视图坐标系中的位置和大小,可以改变视图的位置和大小,其原点是相对于父视图的坐标系的。Bounds用于描述视图在其自身坐标系中的位置和大小,用于改变视图的坐标系大小,其原点通常为(0, 0)。

延伸阅读

坐标系转换

在iOS开发中,由于UIView的Frame和Bounds属性描述了视图在不同坐标系中的位置和大小,所以涉及到坐标系转换是很常见的。

UIView提供了多种方法用于坐标系转换,如convertPoint:toView:convertPoint:fromView:用于点的转换,convertRect:toView:convertRect:fromView:用于矩形区域的转换等。

坐标系转换在处理视图嵌套、触摸事件处理等场景中非常有用,可以帮助我们准确地获取和设置视图在不同坐标系中的位置和大小。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT