(七)大图展示Demo引出的UIScrollView的使用
UIScrollView是一个能够滚动的视图控件,可以通过滚动查看所有内容。
用途:
1.一张大图屏幕放不下,可以用各个方向的手势来看大图的各个部分。
2.手机的设置页面有很多的选项,需要上下滚动来查看。
使用步骤:
1.将需要展示的内容添加到UIScrollView中
2.设置UIScrollView的contentSize属性,表示所有内容的尺寸(滚动的范围)。
只能通过代码来设置。
先连线,然后设置一次即可,设置代码为:例如展示一张大图:
self.scrollView.contentSize = CGSizeMake(892, 632);
如果不能拖动,先看有没有设置contentSize,有可能是没有去掉autolayout,也可能是scrollEnabled = NO,也可能没有检测到触摸事件(User InterationEnabled = NO)。
更好的写法是获取图片尺寸赋给滚动视图:
self.scrollView.contentSize = self.imageView.frame.size;
或者
self.scrollView.contentSize = self.imageView.image.size;
其他常见属性:
1.contentOffset,用来表示UIScrollView滚到的位置。
以内容左上角为(0,0),x为当前位置与左边界的最近距离,y为当前位置与上边界的最近距离
应用:点击滚动按钮,自动进行滚动。
这个值是CGPoint类型,默认是GGPointZero。
需要注意,UIScrollView自带动画,不需要用block动画。
使用这个属性设置的滚动是不会自动弹回的,检测到touch才会弹回。
注意结构体改变要先取出来修改再赋回去。
CGPoint offset = self.scrollView.contentOffset;
offset.x += 10;
offset.y += 10;
[self.scrollView setContentOffset:offset animated:YES];
2.contentInset
是UIEdgeInsets类型的结构体,有top、left、bottom、right属性,表示四个方向可以额外滚动的区域(不会自动弹回)
self.scrollView.contentInset = UIEdgeInsetsMake(100, 20, 40, 80);
Tip:scrollView的frame.size表示的是scrollView的可视范围,contentSize表示的是总体内容的范围。
(七)大图展示Demo引出的UIScrollView的使用的更多相关文章
- 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
无废话ExtJs 入门教程七[登陆窗体Demo:Login] extjs技术交流,欢迎加群(201926085) 在这节我们通过前几节讲的内容做一个登陆页面,把前几节讲的内容贯穿一下. 1.代码如下: ...
- OC基础之推荐一个旋转木马(跑马灯)效果的图片展示Demo
这个旋转木马(跑马灯)效果的图片展示Demo,包括设定旋转方向,图片倒影,背景设置,旋转速度,开始结束,点击显示选中的图片,彩色的块展示等等功能 效果图:(源码下载:https://github.co ...
- 阻止右键菜单(阻止默认事件)&&跟随鼠标移动(大图展示)&&自定义右键菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 基于canvas图像处理的图片展示demo
图片展示网页往往色彩繁杂,当一个网页上有多张图片的时候用户的注意力就很不容易集中,而且会造成网站整个色调风格的不可把控. 能不能把所有的预览图变成灰度图片,等用户激活某张图片的时候再上色呢? 以前,唯 ...
- salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息.当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:Pop Up Window弹出修改详情以 ...
- Cesium学习笔记(七):Demo学习(自由控制飞行的飞机)[转]
https://blog.csdn.net/umgsoil/article/details/74923013# 这是官方的教程Demo,名字叫Use HeadingPitchRoll,顾名思义,就是教 ...
- 使用iframe实现上下窗口结构及登录页全窗口展示Demo
iframe.html 首页 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> < ...
- Android闹钟开发与展示Demo
前言: 看过了不少安卓闹钟开发的例子,都是点到为止,都不完整,这次整一个看看. 一.闹钟的设置不需要数据库,但是展示闹钟列表的时候需要,所以需要数据库: public class MySQLiteOp ...
- 下载大图的demo by apple,值得研究和参考
https://developer.apple.com/library/content/samplecode/LargeImageDownsizing/Introduction/Intro.html ...
随机推荐
- MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引
mysql explain的使用: http://blog.csdn.net/kaka1121/article/details/53394426 索引类型 在数据库表中,对字段建立索引可以大大提高查询 ...
- Swift类中如何创建一个对外只读对内可读写的属性
很简单用private修饰符,后面跟限制关键字set: class Day{ private(set) var rawValue:Int = 0 func showRawValue(){ print( ...
- Android底层开发经验
最近看到一个博客,他的博文虽然是转载的,但源作者肯定对底层的理解可谓是非常透彻,一副思维导图就可以将整个重要体系建立起来,非常适合大家学习.学习不单单只要有代码,生动有趣更重要.在此推荐一波: htt ...
- 如何编写入门级redis客户端
概述 Redis是开源的.基于内存的数据结构存储系统,可用作数据库.缓存以及消息代理方面.Redis支持许多种数据结构,并内置了丰富的诸如冗余.脚本.事务.持久化等功能,深受业界喜爱,被各种业务系统广 ...
- PHP+MySQL 分页那点事
分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...
- The packages can be overrided by Java Endorsed Standards
Endorsed Standards APIs The Endorsed Standards for Java SE constitute all classes and interfaces ...
- CCSpriteBatchNode中存放元素的一点理解
该对象只能包含基于CCSprite的对象,并且该要求适用于一切子孙对象.即加入CCSpriteBatchNode的任何对象都必须是CCSprite或其子类. 比如CCSpriteBatchNode包含 ...
- 理解 Linux 的硬链接与软链接
Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...
- Android View框架总结(八)ViewGroup事件分发机制
请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52298780 上篇分析了View的事件分发流程,留了一个问题:如果上 ...
- 13 获取外部数据库 以及数据库游标适配器(SimpleCursorAdapter)
获取外部数据库 API SQLiteDatabase db = SQLiteDatabase.openDatabase(path, factory, flags); 参数详解: path:数据库路径 ...