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

contentsize、contentoffset 和contentInset 详解

下面我用怎么做一个书架的例子和大家说说contentsize、contentoffset 和contentInset的区别。

NSString *path = nil; UIImage *back = nil; NSString *str = nil; UIImage *aImage = nil; path = [[NSBundle mainBundle] pathForResource:@"shujia" ofType:@"jpg"]; back = [UIImage imageWithContentsOfFile:path];//加载图片 _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(96, 84,back.size.width,back.size.height)]; _scrollView.showsVerticalScrollIndicator = NO; //将竖直方向的滚动条隐藏 //将shujia.jpg作为_scrollerView的背景 UIColor *color=[[UIColor alloc]initWithPatternImage:back]; [_scrollView setBackgroundColor:color]; _buttonList=[NSMutableArray arrayWithCapacity:9]; for(int i=0;i<9;i++) { str=[NSString stringWithFormat:@"menubook%d",i+1]; path = [[NSBundle mainBundle] pathForResource:str ofType:@"png"]; aImage = [UIImage imageWithContentsOfFile:path]; int x = (i%3)* (aImage.size.width+15); int y = (i/3)* (aImage.size.height+30); _whichPeople = [UIButton buttonWithType:UIButtonTypeCustom]; _whichPeople.frame = CGRectMake(x+10,y+30,aImage.size.width,aImage.size.height); _whichPeople.tag = i; [_whichPeople setImage:aImage forState:UIControlStateNormal];//这个图片是在布点击时响应 path = nil; aImage = nil; str = nil; str=[NSString stringWithFormat:@"menubook%d_1",i+1]; path = [[NSBundle mainBundle] pathForResource:str ofType:@"png"]; aImage = [UIImage imageWithContentsOfFile:path]; [_whichPeople setImage:aImage forState:UIControlStateHighlighted];//图片在点击的时候响应 [_whichPeople addTarget:self action:@selector(ButtonClick:) forControlEvents:UIControlEventTouchUpInside]; [_scrollView addSubview:_whichPeople]; [_buttonList addObject:_whichPeople]; path = nil; aImage = nil; str = nil; } //控制可以滚动的区域 _scrollView.contentSize = CGSizeMake(480, 580); //当前显示区域顶点相对于frame顶点的偏移量 _scrollView.contentOffset = CGPointMake(0, 0); //scrollview的contentview的顶点相对于scrollview的位置 _scrollView.contentInset = UIEdgeInsetsMake(0 , 0, 0, 0); [self.view addSubview:_scrollView];

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)开始显示

相关文章:

  • SolidWorks常用的键组合
  • 需要谈谈的游戏测试第二季(一)
  • 使用Ansible快速构建kubernetes1.10.4HA高可用集群
  • 需要谈谈的游戏测试第二季(二)
  • 获取日期,实时显示当前时间,时间相减
  • Mysql linux -N命令
  • linux装在虚拟机上,如何进入文字界面
  • 大型分布式架构设计与实现-第三章互联网安全架构
  • 【Android】获取Android源码的简明步骤
  • WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
  • 从决策树学习谈到贝叶斯分类算法、EM、HMM
  • 禁止在 .NET Framework 中执行用户代码。启用 clr enabled 配置选项
  • 【IOS】Instruments 使用教程
  • PyCharm教程
  • 需要谈谈的游戏测试第二季(三)
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android开源项目规范总结
  • es6
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HTTP中的ETag在移动客户端的应用
  • Java Agent 学习笔记
  • JSONP原理
  • ubuntu 下nginx安装 并支持https协议
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 后端_MYSQL
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 巧用 TypeScript (一)
  • 如何使用 JavaScript 解析 URL
  • 听说你叫Java(二)–Servlet请求
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 大数据全解:定义、价值及挑战
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计高校学生选课系统
  • (一)kafka实战——kafka源码编译启动
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)Windows2003安全设置/维护
  • *** 2003
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @property括号内属性讲解
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [ 第一章] JavaScript 简史
  • [2]十道算法题【Java实现】
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [C/C++]关于C++11中的std::move和std::forward
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项