iOS 开发之使用 ScrollView 实现自定义滚动距离(半屏分页滑动)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 开发之使用 ScrollView 实现自定义滚动距离(半屏分页滑动)相关的知识,希望对你有一定的参考价值。
参考技术A 遇到这样一个需求,半屏分页滚动轮播图,每次滑动一个 cell 的宽度原理:创建一个和你 scrollView,让它的宽等于你需要分页的宽,为了让旁边的页显示出来,我们设置它的属性:
self.scrollView.layer.masksToBounds = NO;
self.scrollView.pagingEnabled = YES;
这样我们就可以得到自定义距离的分页滑动了
但是可滑动区域只在中间部分,我们增大它的滑动区域
demo地址:
https://github.com/xiaoxiaoxiaoxuan/CustomPageScroll
iOS scrollView自动布局技巧之二 - 纯代码自动布局
参考技术A目录:
注意:
- 不管以上那种情况,scrollView 本身的大小和位置一定要相对固定!
- 可以使用frame直接设置,也可以使用自动布局设置。
根据排列组合,共有 2*2 = 4 中情况,下面分别分析:
这种情况没什么好说的,直接设置即可。
这种情况相当于是第四种情况的简化版,故请先看[第四种方式]。
我们知道,只要设置 scrollView 的 contentSize,就限定了 scrollView 的可滚动范围。所以这种情况,并不能很好的根据子控件的变化而动态显示完整的内容。
所以子控件bounds变化的情况,需要使用[第四种方式]设置。
首先来做个分析:
第1条,两种设置方式,自己根据实际情况选择一种即可;
第2条,将所有子视图塞进一个容器视图中。即先给scrollView添加一个 唯一直接子视图 。
通俗点说就是创建一个 sizeView 设置其大小(直接设置frame或者使用autolayout设置皆可),然后将其添加到scrollView的子视图,其他七七八八的所有小子视图都添加在这个直接子视图 sizeView 中,这个直接子视图就相当于 contentView。
这样只要设置这个直接子视图 sizeView 的大小和约束就好了。
如果设置好了这个直接子视图 sizeView 的约束,那么这个直接子视图 sizeView 的范围就是 scrollView 的滚动范围喽!
第3条,其实设置子视图布局就2个要点:
如图1、图2
图2为竖直、水平方向皆可滚动,注意观察滚动条位置。
图2为竖直、水平方向皆可滚动,注意观察滚动条位置。
如此设置布局是不是很方便呢?
以上是关于iOS 开发之使用 ScrollView 实现自定义滚动距离(半屏分页滑动)的主要内容,如果未能解决你的问题,请参考以下文章
AndroidAndroid开发实现带有反弹效果,仿IOS反弹scrollview详解教程
AndroidAndroid开发实现带有反弹效果,仿IOS反弹scrollview详解教程