【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图
随着移动设备,iphone屏幕尺寸的限制。超过内容的屏幕大小为scrollview于,通过滑动来获得。scrollview滑动方向可以是也可以是横向垂直,scrollview可以嵌套,例如,纵向滑动scrollview进入侧滑scrollview中作为子视图。
在考虑加入一个scrollview的时候。我们须要设定scrollview的尺寸,这个属性叫做contentSize,它是一个CGSize类型的,它的尺寸比iphone的屏幕要大:
如今你能够把你想要添加的内容放到这个足够大的scrollview中,比方放一张图片:
你的当前屏幕仅仅能显示scrollview的一部分,假设你想知道屏幕显示的画面在scrollview中的位置,能够通过设定属性contentOffset。它是一个CGPoint类型的:
那么怎样获取当前看到的背景图片aerial的区域呢?由于使用了scrollview的属性bounds,所以须要从scrollview的坐标系转化成aerial的坐标系,否则我们获取的是scrollview的区域。方法例如以下:
来认识一下scrollview:
你能够拖拽一个scrollview到场景中,也能够选中某个view然后Embed In一个Scroll View。
假设你想让某个大图片成为scrollview的背景。那么在把图片加到scrollView中之后记得设置scrollview的尺寸。
你能够通过方法或者属性来调整滑动时的特效:
另外一点须要注意的是scrollview能够局部放大或者缩小。可是你须要指定放大的最大背书和缩小的最小倍数,假设你不设定,默认的值是1,这种话缩放是不起作用的。
另外和我们之前接触的其它视图一样。想要使用缩放功能。你须要实现scrollview的代理,然后实现代理方法,指定一个在其上缩放的视图。完毕这两步之后你就能够进行缩放了。
zoomScale指示当前缩放的比例大小
你能够通过setZoomScale方法来改动它的值。
zoomToRect方法的作用是提供一个矩形框让你的视图去适应这个矩形框,比方指定了如图中所看到的的黄色矩形框,框住了图中的某一部分。
如今放大这一部分,能够看到当框中的内容扩充到了屏幕的尺寸的时候就不能再放大了。
滚动视图的代理有12个代理方法。但是当你没有遵守了这个代理却没有实现这些方法的时候编译器不会报错。这似乎和我们之前了解到的代理有些不同。这是因为一些历史原因造成的。OC中的方法是可选的,但是Swift不同意这样,像scrollview这种古老协议里面的方法都是可选的,Swift进行了桥接。你也能够写一个OC风格另一种方法。只有在前面加keyword@objc能够。
版权声明:本文博主原创文章。博客,未经同意不得转载。
【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图的更多相关文章
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记2 Xcode、Auto Layout及MVC
原文链接不知道在哪, 接着上一话来讲,上一话中讲到了MVC,那么MVC在IOS8开发中是如何应用的呢?Paul Hegarty老师给我们展示了一个计算器的Demo,首先新建一个工程,老师把AppDel ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记19 为Demo添加手势
在这一话中我们将应用上一话学到的知识来为Demo添加手势识别,首先添加一个缩放的功能,其次添加一个拖动功能,使得小人的表情可以随着我们的手指改变. 首先来添加一个缩放手势的识别器,我们来到FaceVi ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记30 ScrollView Demo实战
在上一话中我们创建了一个通过URL读取图片的Demo,这个Demo是不能拖动和缩放的.如今给它添加选项让它能够手动切换URL,并把图片加入到ScrollView中. 向Storyboard中拖入一个s ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记3 Xcode、Auto Layout及MVC
继续上一话中的计算器Demo.上一话讲到类必须被初始化.类中的属性也必须被初始化,所以你不能仅仅声明而不给它一个处置,那么问题来了,我们从storyboard中拖拽的@IBOutlet为什么仅仅有声明 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记38 Unwind Segue反向过渡
之前我们接触过了segue,这是IOS中最主要的传递方式,今天来解说一下怎样进行反向的segue. 反向过渡的使用前提是发出过渡的MVC必须是由目标MVC直接或者间接正向过渡来的.反向过渡是唯一不会创 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记35 UITextField文本框
本话来介绍UIKit框架中的组件UITextField. UItextField(文本框)和Label看起来看像,可是文本框是能够编辑的.在UI中使用文本框要注意.由于在模拟器上面输入文字是能够使用电 ...
- IOS学习之斯坦福大学IOS开发课程笔记(第六课)
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是怎样协同工作的.到眼下为止.全 ...
- [斯坦福大学2014机器学习教程笔记]第五章-控制语句:for,while,if语句
在本节中,我们将学习如何为Octave程序写控制语句. 首先,我们先学习如何使用for循环.我们将v设为一个10行1列的零向量. 接着,我们写一个for循环,让i等于1到10.写出来就是for i = ...
随机推荐
- android各种资源的详细解释
1.字符数组 使用字符串数组资源<string-array>标签定义,在<string-array>包括一些标签<item>数组元素标记. 例如 &l ...
- 用css3实现各种图标效果
原文:用css3实现各种图标效果 公共样式 应该说现在绝大多数公司的项目前端都是一团乱,不仅仅是js写的没有任何框架而言,css同样也是如此,导致项目如果要升级或者说有新的变更维护起来就特别困难. 最 ...
- CF 460C Present 【DP+】主意
给你n高树花.m日,每天连续浇筑w鲜花.一天一次,花长1高度单位 求m天后.最矮的花最高是多少 最大最小问题能够用二分来解 首先我们能够得到全部花的最矮高度即答案的下界,给这个花浇m天即是答案的上界 ...
- zimbra启用SMTP认证并绑定认证登录和发件人
1. smtp认证 1.1 修改mynetworks 登录zimbra后台-->全局配置-->MTA-->信任网络-->127.0.0.0/8 ...
- 实现Timeline
Redis实现Timeline 上回写了使用Redis实现关注关系,这次说说使用Redis实现Timeline. Timeline的实现一般有推模式.拉模式.推拉结合这几种.推模式:某人发布内容之后推 ...
- 解决错误 fatal error C1010: unexpected end of file while looking for precompiled head
在编译VS时候,出现fatal error C1010: unexpected end of file while looking for precompiled head. 问题详解:致命错误C10 ...
- ViewPager.getChildCount() 含义
viewpager.getChildCount() 非常easy误解成viewpager子页面的size.它和getCount还是有差别的 getChildCount() 是表示当前可见页size 比 ...
- Phpcms所有系统变量列表 Phpcms V9 文件目录结构
Phpcms所有系统变量列表 用户变量: view plaincopy to clipboardprint? $_userid 用户id $_username 用户名 $_areaid ...
- Windows Phone开发(45):推送通知大结局——Raw通知
原文:Windows Phone开发(45):推送通知大结局--Raw通知 为什么叫大结局呢?因为推送通知服务就只有三种,前面扯了两种,就剩下一种--Raw通知. 前面我们通过两节的动手实验,相信大家 ...
- 【j2ee spring】27、巴巴荆楚网-整合hibernate4+spring4(2)
巴巴荆楚网-整合hibernate4+spring4(2) 1.图文项目 2.首先我们引入对应的jar包 这里用的是oracle 11g,所以我们使用的数据库连接jar包是ojdbc6, 的区别就是支 ...