当前位置: 首页 > news >正文

IOS中UIScrollView的contentSize、contentOffset和contentInset属性

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,它是一个结构体,定义如下:

[cpp]  view plain copy
  1. typedef struct {  
  2.     CGFloat top, left, bottom, right;  
  3. }  

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


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

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

转载于:https://www.cnblogs.com/yuqingzhude/p/4836501.html

相关文章:

  • WPF: 实现带全选复选框的列表控件
  • 最全的Swift社交应用文本输入优化汇总
  • 世界各国时区表以及与北京时差
  • Swift - 网页控件(UIWebView)加载本地数据,文件
  • [原] 利用 OVS 建立 VxLAN 虚拟网络实验
  • Swift - 几种使用数组的数据存储模型
  • Good Luck in CET-4 Everybody!(博弈)
  • Learning Joomla! 3 Extension Development-Third Edition_翻译
  • JavaBean 基础概念、使用实例及代码分析
  • iOS—静态方法(类方法)和实例方法
  • [HDOJ4911]Inversion
  • MySQL的Auto-Failover功能
  • (转)菜鸟学数据库(三)——存储过程
  • Swift - 禁用UIWebView和WKWebView的下拉拖动效果
  • ubuntu上hadoop 单节点伪分布式安装测试
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 10个确保微服务与容器安全的最佳实践
  • go append函数以及写入
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JAVA并发编程--1.基础概念
  • mongo索引构建
  • oschina
  • php ci框架整合银盛支付
  • 你真的知道 == 和 equals 的区别吗?
  • 如何学习JavaEE,项目又该如何做?
  • 深入浅出Node.js
  • 06-01 点餐小程序前台界面搭建
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #Linux(帮助手册)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $ git push -u origin master 推送到远程库出错
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (未解决)macOS matplotlib 中文是方框
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)Sublime Text3配置Lua运行环境
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .form文件_一篇文章学会文件上传
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net小白的大学四年,内含面经
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [Android Studio 权威教程]断点调试和高级调试
  • [Assignment] C++1
  • [BUG] Authentication Error
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [C#][DevPress]事件委托的使用