【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

时间:2022-02-26 19:55:32

随着移动设备,iphone屏幕尺寸的限制。超过内容的屏幕大小为scrollview于,通过滑动来获得。scrollview滑动方向可以是也可以是横向垂直,scrollview可以嵌套,例如,纵向滑动scrollview进入侧滑scrollview中作为子视图。

在考虑加入一个scrollview的时候。我们须要设定scrollview的尺寸,这个属性叫做contentSize,它是一个CGSize类型的,它的尺寸比iphone的屏幕要大:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

如今你能够把你想要添加的内容放到这个足够大的scrollview中,比方放一张图片:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

你的当前屏幕仅仅能显示scrollview的一部分,假设你想知道屏幕显示的画面在scrollview中的位置,能够通过设定属性contentOffset。它是一个CGPoint类型的:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

那么怎样获取当前看到的背景图片aerial的区域呢?由于使用了scrollview的属性bounds,所以须要从scrollview的坐标系转化成aerial的坐标系,否则我们获取的是scrollview的区域。方法例如以下:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

来认识一下scrollview:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

你能够拖拽一个scrollview到场景中,也能够选中某个view然后Embed In一个Scroll View。

假设你想让某个大图片成为scrollview的背景。那么在把图片加到scrollView中之后记得设置scrollview的尺寸。

你能够通过方法或者属性来调整滑动时的特效:

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

另外一点须要注意的是scrollview能够局部放大或者缩小。可是你须要指定放大的最大背书和缩小的最小倍数,假设你不设定,默认的值是1,这种话缩放是不起作用的。

另外和我们之前接触的其它视图一样。想要使用缩放功能。你须要实现scrollview的代理,然后实现代理方法,指定一个在其上缩放的视图。完毕这两步之后你就能够进行缩放了。

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

zoomScale指示当前缩放的比例大小

你能够通过setZoomScale方法来改动它的值。

zoomToRect方法的作用是提供一个矩形框让你的视图去适应这个矩形框,比方指定了如图中所看到的的黄色矩形框,框住了图中的某一部分。

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

如今放大这一部分,能够看到当框中的内容扩充到了屏幕的尺寸的时候就不能再放大了。

【我们都爱Paul Hegarty】斯坦福大学IOS8公开组个人笔记28 ScrollView 幻灯片视图

滚动视图的代理有12个代理方法。但是当你没有遵守了这个代理却没有实现这些方法的时候编译器不会报错。这似乎和我们之前了解到的代理有些不同。这是因为一些历史原因造成的。OC中的方法是可选的,但是Swift不同意这样,像scrollview这种古老协议里面的方法都是可选的,Swift进行了桥接。你也能够写一个OC风格另一种方法。只有在前面加keyword@objc能够。

版权声明:本文博主原创文章。博客,未经同意不得转载。