IOS中UIScrollView的contentSize、contentOffset和contentInset属性(转)

iOS UIScrollView的 contentInset、contentSize、contentOffset 之间的关系分析 UIScrollview概念以及原理contentInsetcontentSizecontentOffset实际应用需求效果需求分析代码实现 概念以及原理 我们以水平滚动的UIScrollView 为例 以下文中 ‘内容初始点’ 和 ‘bounds初始点’均指的是UIScrollView滚动方向上的点 ‘内容初始点’指的是 frame的origin 为CGPointMake(0, 0) 的子视图的初始位置 ‘内容结束点’ 和 ‘bounds 结束点’ 同理 contentInset 确定了 UIScroll 阅读详情

这个文章对UIScrollView的这几个参数讲的很好。所以就转来了。自已也差不多有一年没有作ios开发了,一直在使用C++的cocos2d-x作游戏。不过现在再回过头来看Objctive-C以及ios中的这些类,发现自已有了比以前更好的认识和理解。以前自已用这个的时候也只能算是一知半解,并没有能力对这些类有清楚的认识。所以现在转过来更重新学习一下。

IOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView。

跟所有的view一样,UIScrollView有一个frame属性,同时,UIScrollView还具有contentSize、contentOffset和contentInset属性。我在学习中,就觉得其中contentSize和contentOffset相对比较好理解,对contentInset就有点不太好理解。下面具体解释一下。

contentSize是UIScrollView可以滚动的区域。在我的理解中,我把UIScrollView看成是具有上下两层的一个复合视图,frame控制着上层的大小,我们看到的UIScrollView的大小实际就是frame的大小,上层固定不动,显示的变化,由下层的滚动来控制。而下层滚动的区域的大小,就是由contentSize来控制的了。例如:若frame = (0, 0, 320, 480) contentSize = (320, 960),代表本UIScrollView可以上下滚动,滚动区域为frame大小的两倍。

contentOffset是UIScrollView当前显示区域的顶点相对于frame顶点的偏移量,例如上面的例子如果拉到最下面,则contentOffset就是(0, 480),也就是y偏移了480.

contentInset的API文档的解释是"内容视图嵌入到封闭的滚动视图的距离"(哈,英文不是很好,翻译的不好)。可以理解为内容视图的上下左右四个边扩展出去的大小。contentInset的单位是UIEdgeInsets,默认值为UIEdgeInsetsZero,也就是没有扩展的边。下面解释一下UIEdgeInsets,它是一个结构体,定义如下: 

typedef struct {
CGFloat top, left, bottom, right;
}

分别代表着上边界,左边界,底边界,右边界,扩展出去的值。

结合这图片,就比较好理解这几个值的意义了。下面贴一下stanford大学iphone公开课的关于UIScrollView的图片展示,能帮助理解。

链接地址:http://www.docin.com/p-120039524.html

ios-scrollview任意自动布局 contentSize自适应.zip github持续更新地址:https://github.com/gsdios/SDAutoLayout SDAutoLayout(一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库。) 图示demo为 “SDAutoLayout实现的对scrollview多种形式的自动布局以及contentsize自适应(带动画效果)” 。 github持续更新地址:https://github.com/gsdios/SDAutoLayout SDAutoLayout使用者开发的部分app截图 http://www.jianshu.com/p/9bc04d3effb8 QQ交流群:497140713 519489682 ☆☆ SDAutoLayout 基础版视频教程:http://www.letv.com/ptv/vplay/24038772.html ☆☆ ☆☆ SDAutoLayout 进阶版视频教程:http://www.letv.com/ptv/vplay/24381390.html ☆☆ ☆☆ SDAutoLayout 原理简介视频教程:http://www.iqiyi.com/w_19rt0tec4p.html ☆☆ 立即下载

相关推荐

Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析

本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。

a1b2c的博客 800

IOS中UIScrollView的contentSize、contentOffset和contentInset属性

IOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView。 跟所有的view一样,UIScrollView有一个frame属性,同时,UIScrollView还具有contentSize、contentOffset和contentInset属性。我在学习中,就觉得其中contentSize和contentOffset相对比较好理解,...

fulerbakesi 557

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 327

scrollView中contentSize、contentInset和contentOffset知识点回顾

一、概述 IOS中,UIScrollView是可以滚动的视图,它有两个子类,分别是UITableView和UITextView。UIScrollView有三个容易让人混淆的属性变量: contentSize、contentInset和contentOffset。二、具体比较 1、首先,UIScrollView有一个frame属性,一般为整个手机屏幕或者手机屏幕上某一块固定的区域,总之,我们看到

小僧Coding 7276

学术类PPT制作总结

本文分享了科技类PPT的制作技巧,希望相关的信息能帮助到读者。

奇妙水果的技术博客,欢迎交流技术~ 2881

Zabbix监控网络设备讲解

Zabbix监控网络设备讲解 本人在研究学习zabbix的时候,网上找过很多如何监控路由,交换,或者是防火墙的文章,但很多都比较散,这里我出一个大概的整合,方便大家参考和学习。本章就拿华三的交换机来做文章。 监控网络设备首先我们需要开启snmp协议,华三怎么开启snmp协议在我的博客里有写到,其次就是找到版本对应的OID,zabbix就是通过抓取设备的OID来做到监控网络设备的,当然zabbix也不仅仅只有通过snmp来监控设备,还有很多别的功能,这些功能我会在以后的博客里面一一更新 文章目录Zab

太阳了文哥的博客 3381

UIScrollView的Content Size, Content Inset属性

做iOS有好长时间了,今天再次写到UIScrollView的时候再次遇到了ContentSize,ContentInset,Scroll Indicator等属性,想起刚刚入门的时候的困惑,决定把它写下来,做个记录,以后忘记的时候也可以温故知新。也希望给初学者一个好的借鉴,少走点弯路,嘿嘿,不多说了,进入正题,第一次写博客,语言组织可能不太好,如果错误或者说的不准确的地方还望各位大神们多多指正。

我叫柱子哥 1977

【STM32开源实战】基于STM32的智能输液监控系统设计与实现

本文详细介绍了基于STM32F103C8T6主控芯片的智能输液监控系统设计与实现。该系统通过光学液位传感器、温度传感器和红外滴速检测模块实时监测输液状态,利用步进电机自动调节滴速,并通过蓝牙实现数据远程传输,为医院提供了一套低成本、高可靠性的智能输液解决方案。

h6i7j8的博客 761

iOS--UIScrollView用法

UIScrollView继承于UIView,是苹果封装的一个很常用的框架。UIScrollView主要是用来展示超过固定尺寸View的内容,可以再UIScrollView中操作上下左右滑动,两个手指放大和缩小功能。使用范围包括轮播图等,例如微信聊天列表用的是UITableview继承于UIScrollview,在固定的手机屏幕区域内滑动查看更多内容。下面就介绍一下UIScrollView具体的使用方法: 创建UIScrollView的方法: UIScrollView *scrollview =

JustinZYP的博客 3696

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

akamai2/3的vmp字段逆向分析

十一姐的博客 3145

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2655

iOS swift5 UIScrollView布局,自动滚动 UIScrollView有多个子视图,通过snapkit布局,如何算出contentSize

上述代码示例假设你已经使用 SnapKit 创建了 contentView 和其子视图,并设置了相应的约束。请注意,在计算 contentSize 时,我们将视图的宽度设置为 scrollView 的宽度,而高度使用 UIView.layoutFittingCompressedSize.height。确保在合适的时机调用上述代码片段,例如在布局完成后、子视图添加或移除后。这样,UIScrollView 的 contentSize 将根据子视图的大小和约束进行动态计算和调整。

baidu_40537062的博客 1201

Ubuntu零基础教学-如何把Ubuntu20.04界面从英文修改为中文?| 超级详细,建议收藏

带你如何把Ubuntu20.04界面从英文修改为中文?| 超级详细,建议收藏

**My Coding Family** 5340

UIScrollView 的contentSize contentOffset 和 contentInset属性

IOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView。 跟所有的view一样,UIScrollView有一个frame属性,同时,UIScrollView还具有contentSize、contentOffset和contentInset属性。 contentSize contentSize是UIScrollView可以...

genzld的博客 854

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

contentSize、contentInset和contentOffset

contentSize、contentInset和contentOffset 是 scrollView三个基本的属性。 contentSize: The size of the content view. 其实就是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动

一个程序猿的故事 3万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

contentSize、contentInset和contentOffset区别

在做一个功能的时候,遇到了这个问题。这里记录一下。 可滚动视图:UIScrollView,UITableView(是UIScrollView的子类)。 如果有的童鞋还是不理解,这个滚动视图,那么引一句网上的说法:      就像两张重叠在一起的纸,上面的纸中间有个320*480的屏幕状的洞,然后下面的纸可以无限大,显示是内容,你可以将手指通过这张洞来移动下面的纸,来阅读上面的信息。 而co

爱喝水的人 4405

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

iOS中UIScrollView的frame、contentSize、contentOffset和contentInset属性

IOS中UIScrollView的frame、contentSize、contentOffset和contentInset属性 (1) frame            :是指scrollview的可视范围(可看见的区域)。 (2)contentsize    :是其滚动范围。UIScrollView所有内容的尺⼨寸,也就是告诉 它滚动的范围(能滚多远,就滚多远)  (3)con

chenxi506343891的博客 494

contentsiz contentoffset contentInset的区别

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480contentInset是scrollview的contentview的顶点相对于sc

禚来强(亿刀) 的iphone开发专栏--我们 一群 热爱 移动开发,如果你也是,就加入我们。 7713

ios开发scrollView中contentSize、contentInset和contentOffset区别

ios开发scrollView中contentSize、contentInset和contentOffset区别 contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。  contentOffset是sc

mr_liu_easy_ios的博客 513

iOS开发之 UIScrollView的frame、contentSize、contentOffset和contentInset属性

转自: https://www.cnblogs.com/muyushifang07/p/4449902.htmlhttps://www.cnblogs.com/wuyuxin/p/7045658.htmlhttps://www.jianshu.com/p/9091e5f34df5(1) frame            :是指scrollview的可视范围(可看见的区域)。(2)contentsi...

iotjin的专栏 3312

scrollView的几个属性contentSize contentOffset contentInset

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。 contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就...

alnh4952的博客 116

frame bounds center origin contentSize contentOffset contentInset

这几个都是在ios程序中,经常会注意到的一些小细节,能否真正了解这些,对写ios程序也有很大的好处。 frame 是UIView中表示此view的一个矩形面积,包括了view在它的superview中的一些几何上的标识。有起始坐标,也就是origin(CGPoint)和这个矩形面积的宽(width)和高(height) bounds 每个view,除了有对应它的superview的相...

aidiqiao5297的博客 276
上一篇: url的编解码
下一篇: 游戏角色中文名生成常用字段
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值