frame 和 bounds的区别

简介: frame 和 bounds的区别

frame 和 bounds的区别


很多iOS程序员在面试时候都会被问到frame和bounds的区别

很多人都这么回答frame就是相对父控件左上角的位置和大小
bounds就是相对自身左上角的位置大小,其实相对位置就是零

其实这种回答不是很准确,只能说是百分之五十对。为什么呢,如果面试官再追问:那这么说bounds的X ,Y  就永远都是零 ?  这时候你如果说是,那就错了,如果你说不是,那么就和你刚才的回答有点对不上,所以,其实不是这样,bounds的X、 Y的值是可以改变的。改变的其实是控件的内容的位置,所以控件本身的位置是不会变的,但是该控件的子控件位置就会发生改变。

其实正确的回答应该是这样的

- frame
    - 以`父控件` `内容`的左上角为坐标原点, 计算出的`控件自己` `矩形框`的位置和尺寸
- bounds
    - 以`控件自己` `内容`的左上角为坐标原点, 计算出的`控件自己` `矩形框`的位置和尺寸
- 概括
    - frame.size == bounds.size
    - scrollView.bounds.origin == scrollView.contentOffset

为了方便理解,我给大家来一张图就很容易理解了

9b91acf490bad0ea2d034985ac42aefe.png

bounds和frame的区别.png

为什么我们要这样说呢,很简单的一个道理,UIScrollView有个contentSize这个属性,其实是相对UIScrollView的“内容”的位置

相关文章
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
安全 网络协议 5G
华为配置中心AP内漫游示例
WLAN不同的特性和功能需要在不同类型的模板下进行配置和维护,这些模板统称为WLAN模板,如域管理模板、射频模板、VAP模板、AP系统模板、AP有线口模板、WIDS模板。当用户在配置WLAN业务功能时,需要在对应功能的WLAN模板中进行参数配置,配置完成后,须将此模板引用到AP组或AP中,配置才会自动下发到RU,进而配置的功能在RU上生效。由于模板之间是存在相互引用关系的,因此在用户配置过程中,需要提前了解各个模板之间存在的逻辑关系。模板的逻辑关系和基本配置流程请参见WLAN业务配置流程。
330 1
|
人工智能 自然语言处理 物联网
llama factory 从数据集起步 跑通 qwen系列开源生成式大模型 微调
`dataset_info.json` 文件用于管理 llama factory 中的所有数据集,支持 `alpaca` 和 `sharegpt` 格式。通过配置此文件,可以轻松添加自定义数据集。数据集的相关参数包括数据源地址、数据集格式、样本数量等,支持 Hugging Face 和 ModelScope 两个平台的数据集仓库。针对不同格式的数据集,提供了详细的配置示例,如 `alpaca` 格式的指令监督微调数据集、偏好数据集等,以及 `sharegpt` 格式的多模态数据集等。今天我们通过自定义数据集的方式来进行qwen2.5_14B_instruct模型进行微调
7417 7
|
IDE Java 开发工具
阿里巴巴不建议 boolean 类型变量用isXXX的理由?
平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?
|
存储 数据库
离线数仓(八)【DWD 层开发】(1)
离线数仓(八)【DWD 层开发】
|
缓存 编解码 NoSQL
Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。
Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
|
人工智能 安全 物联网
移动应用开发的未来趋势与挑战
【5月更文挑战第16天】在数字化时代,移动应用已成为日常生活的不可或缺的一部分。随着技术的不断进步,移动应用开发正面临着前所未有的机遇与挑战。本文将探讨移动应用开发的最新趋势、移动操作系统的创新动态以及开发者在设计、实施和维护过程中的挑战。我们将分析如何利用新技术如人工智能(AI)、物联网(IoT)和跨平台工具,以适应不断变化的市场需求和用户期望。
|
专有云
VPC的xgw上查看路由
VPC的xgw上查看路由
637 1
蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫
蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫
267 0
蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:5.迷宫