IOS 中 contentsize contentoffset contentInset的区别

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。

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

contentInset
 
是scrollview的contentview的顶点相对于scrollview的位置,例如你的
 
contentInset
 
 = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示

另外UITableView是UIScrollView的子类,它们在上述属性又有所不同,tabelview的contentsize是由它的下列方法共同实现的

- (NSInteger)numberOfSections;

- (NSInteger)numberOfRowsInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

它会自动计算所有的高度和来做为它的contentsize的height.

例如你在delegate方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return 100;

}

时间: 2024-10-11 21:00:41

IOS 中 contentsize contentoffset contentInset的区别的相关文章

IOS中Retain和Copy的区别

IOS中Retain和Copy的区别 1 ,可读性: readonly  . readwrite@property(readwrite,....) valueType value;这个属性是变量的默认属性,就是如果你 (readwrite and readonly 都没有使用,那么你的变量就是 readwrite 属性 ) ,通过加入 readwrite 属性你的变量就会有 get 方法,和 set 方法.property(readonly,...) valueType value;这个属性变量

iOS开发frame, contentSize, contentOffset, contentInset 区别联系浅析

1. 概述 iOS开发中,必然会涉及到布局相关问题,frame,bounds,contenSize,contentOffset,contentInset这几个布局相关概念让许多初学者感到困惑.虽然初步了解这几个概念,即可完成大部分界面的布局,但布局较复杂页面时就有点力不从心了. 2. 概念解析 2.1 frame frame是一个矩形区域,反映当前view相对于它的superview的位置关系,左上角的点(frame.origin)的x,y轴值确定了矩形区域的位置(frame.origin.x,

ios 中tableview和scrollView的区别

scrollView: 1. 介绍scrollView一些属性     1>.要想使用scrollView必须做两件事 1).设置scrollView内容 2).设置contentSize (滚动范围) 2>.其他属性         1). contentOffset(滚动位置)         2). contentInset(额外增加的滚动区域)         3). bounces (设置UIScrollView是否需要弹簧效果) 4). crollEnabled (设置UIScro

scrollView的几个属性contentSize contentOffset contentInset

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

一张图让你明白IOS中bounds和frame的区别

很多人在学习的就搞混了bounds和frame的区别,大家可以看看这张图就会明白它俩的区别: frame: 该view在父view坐标系统中的位置和大小.(参照点是,父亲的坐标系统) bounds:该view在本地坐标系统中的位置和大小.(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点) center:该view的中心点在父view坐标系统中的位置和大小.(参照点是,父亲的坐标系统) 看上图中,如果将ViewA的bounds设置为(-200,-100,550,400)

iOS中堆和栈的区别

堆和栈的区别主要有以下五点: 1.管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来讲,释放工作由程序员控制,容易产生memory leak(内存泄露). 2.申请大小: 栈是向低地址扩展的数据结构,是一块连续的内存区域.这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,是一个编译时就确定的常数,如果申请空间超过栈的剩余空间时,将提示overflow(溢出).因此,能从栈获得的空间较小. 堆是向高地址扩展的数据结构,是不连续的内存区域.这是由于系统是由链表来存储的空闲内

【原】iOS中KVC和KVO的区别

在iOS开发中经常会看到KVC和KVO这两个概念,比较可能混淆,特地区分一下 KVC(Key Value Coding) 1> 概述 KVC:Key Value Coding,键值编码,是一种间接访问实例变量的方法. KVC 提供了一个使用字符串(Key)而不是访问器方法,去访问一个对象实例变量的机制. 2> KVC部分源码(头文件) 1 // NSKeyValueCoding.h 2 @interface NSObject(NSKeyValueCoding) 3 4 + (BOOL)acce

iOS中initWithNibName 和 loadNibNamed 的区别和联系(参考孤独的豆沙包)

// 以后自定义控制器建议写这个方法,让控制器一创建出来就拥有某些属性 // init方法内部默认会调用initWithNibName方法 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { self.hidesBottomBa

iOS中sqlite和coreData的区别

sqlite和coreData的区别: 1.sqlite数据库的操作流程: 创建数据库,再通过定义一些字段来定义表格结构,可以利用sql语句向表格中插入记录,删除记录,修改记录,表格之间也可以建联系. sqlite和coreData的类做个对应: 表结构--------NSEntityDescription(菜单详情) 数据库中所有的表格和他们的联系--------NSmanagedObjectModel(菜谱) 数据库存放方式---------NSPersistentStoreCoordina