IOS contentOffset该如何理解

contentOffset是哪个点???

首先从字面理解:内容偏移

我可是查了词典的!!!

对于contentOffset有的时候我们会产生错误理解。 我不想在这里介绍错误的理解避免不必要的混淆。

我们什么时候会遇到contentOffset???

更多的时候是在滚动试图中,我们可以通过它结合代理实现一些方法。

比如轮播(我会在下一篇介绍轮播的实现原理至于代码如果需要我可整理出来) 那么请让我通过图片演示来解释contentOffset。

(一)

图一中绿色为屏幕也就是最大的显示范围也是滚动视图的frame,红色为滚动试图的contentSize。

我们可以把两个框理解为两个View。那么得出的结果就是两个View的左上顶点重合,这时的contentOffset为{0,0}。

(二)

图二中我们把红色向左平移100,也就相当于我们向左滚动了100.
这样产生的结果就是contentOffset为{100,0}.

(三)

因此我们可以得出是frame顶点相对于scrollview当前显示区域顶点的偏移量。

时间: 2024-10-10 10:39:40

IOS contentOffset该如何理解的相关文章

iOS关于代理的理解

直接上3个图,不知道说的对不对,欢迎大神指点 iOS关于代理的理解

iOS开发:深入理解GCD 第一篇

最近把其他书籍都放下了,主要是在研究GCD.如果是为了工作,以我以前所学的GCD.NSOperation等知识已经足够用了,但学习并不仅仅知识满足于用它,要知其然.并且知其所以然,这样才可以不断的提高自身技术水平. 本文主要参考http://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1 和 <iOS与OS X 多线程和内存管理>,以及其他一些杂七杂八的书籍或者博客. GCD已经面世很久了,基于GCD面向对象

iOS开发:深入理解GCD 第二篇(dispatch_group、dispatch_barrier、基于线程安全的多读单写)

Dispatch Group在追加到Dispatch Queue中的多个任务处理完毕之后想执行结束处理,这种需求会经常出现.如果只是使用一个Serial Dispatch Queue(串行队列)时,只要将想执行的处理全部追加到该串行队列中并在最后追加结束处理即可,但是在使用Concurrent Queue 时,可能会同时使用多个Dispatch Queue时,源代码就会变得很复杂. 在这种情况下,就可以使用Dispatch Group. 1 2 3 4 5 6 7 8 9 10 11 12 13

ios测试框架的理解

关于ios的测试 Cedar .Specta .Kiwi  .  XCTest Specta和Kiwi的区别就是Kiwi包含了Specta和OCmock以及Expeata所有的功能 测试框架的作用: 由于行业中的干进度,所以我们一般都是不用TDD来测试,而是用BDD来测试. BDD是用来测试的"数据存取"的重要环节. "术语" 理解: BDD(Behavior Driven Development),也就是行为驱动开发,它旨在解决具体问题,帮助开发人员确定应该测试些

iOS runtime的简单理解

最近闲了下来,有时间了就研究一下runtime的运行机制,之前做开发的时候一直也没有特别关注这个东西,只是知道有,但是很少去刻意的使用,研究的不是很深,简单说一下吧,有错误的地方欢迎大家随时指正. Objective-C Runtime 是什么? Objective-C 的 Runtime 是一个运行时库(Runtime Library),它是一个主要使用 C 和汇编写的库,为 C 添加了面相对象的能力并创造了 Objective-C.这就是说它在类信息(Class information) 中

iOS 中delegate的理解与使用(传值)

之前做了半年的iOS,刚入了门,又被拉去转战java,现在iOS的那位大佬离职了,又被弄过来维护app,之前对于iOS中的delegate一直都是半知半解,所以刚好趁着这个机会把我所了解的记下来,以便日后查阅. - delegate的理解 delegate, 也就是代理模式(设计模式的一种),我现在所了解的代理模式是,当我有事要做但是没空的时候,我就可以请别人帮下忙,我告诉你我要做什么,但是具体怎么做,那是你的事了,就比如说,我想去约个妹纸出来玩,但是自己刚好现在有事不能约,或者自己不好意思约,

对于iOS前端框架的理解

iOS前端的架构设计,我所理解的意思就是,使用什么样的模式或者结构敲代码就是各个类怎么协同工作的.或者文件存放的结构.各个类到底如何分工的. 国外有好多关于iOS端的架构的文章,无奈实在英语水平有限,只看了几篇被翻译过的文章.MVC.MVVM.VIPER等还有几个记不住名字的,但是无论什么架构感觉理解的都不是很深刻,具体写代码的时候也没有分的太清楚,也是怎么方便怎么来.最后导致了来回几次的重构,但是重构完成后,过一段时间再看代码的时候还是感觉结构不够清晰,各个类之间的关系比较混乱.现在的项目也是

iOS开发CABasicAnimation动画理解

1.CALayer简介 CALayer是个与UIView很类似的概念,同样有backgroundColor.frame等相似的属性,我们可以将UIView看做一种特殊的CALayer.但实际上UIView是对CALayer封装,在CALayer的基础上再添加交互功能.UIView的显示必须依赖于CALayer.我们同样可以跟新建view一样新建一个layer,然后添加到某个已有的layer上,同样可以对layer调整大小.位置.透明度等.一般来说,layer可以有两种用途:一是对view相关属性

iOS开发知识点:理解assign,copy,retain变strong

一..h和.m文件的变化说明 1.对于.h头文件,主要是将属性定义由retain变为strong [java] view plaincopy @property (retain, nonatomic) 变为 [java] view plaincopy @property (strong, nonatomic) 2.在ARC之前,我们经常在.m中使用分类拓展来增加私有的property [java] view plaincopy @interface MJViewController () @pr