美文网首页iOS开发攻城狮的集散地
iOS实现轮播图的两种思路

iOS实现轮播图的两种思路

作者: 大风先生bigWind | 来源:发表于2017-08-29 18:32 被阅读52次

1,概述

这里我先说一下自己所说的"思路"可能跟大家理解的"思路"不大一样; 什么定义啥的太宽泛了, 俺也不大会概括, 这里就举这个例子来说明吧, 当然后面会说我的推荐:

比如说到"轮播图的两种实现思路", 大家想到的答案可能是"轮播图的两种实现思路分别是通过UICollectionView和UIScrollView来实现"这个;
但是我这里说的两个思路不是UICollectionView和UIScrollView的区别, 而是具体实现过程中轮播方式的不同.

好, 区别暂时说这么多先, 反正现在也是懵逼, 待会儿往下看就知道具体区别在哪了.

2,思路的简单介绍

思路A:

思路A用一句话来总结的话---"图片的轮播";
看下面的思路就知道为什么这么说了.
举个栗子:
假如有标号为0-3的四张图要轮播, 那么在起始的时候, 显示的是第0张图:

image.png

当手指向左滑之后, 此时屏幕显示的是"图1"的, 如图:

image.png
此时,后台需要做的事情有:
  1. 将middle的图片设为"图1", 然后将scrollView的偏移量设置成初始状态(注意,不能开启动画, 否则露馅);
  2. 将left的图片设置成"图0", 将right的图片设置成"图2";
    然后就变成了这样的:
image.png

当然, 要上线无线轮播的话, 在滚动到头尾的时候肯定是需要处理一下的, 需要用到模运算%.

思路B:

思路B用一句话啦总结的话--"图片框的轮播";
同样看思路就知道了
还是举个栗子:
还是标号为0-3的四张图来轮播, 则先把四张图的首尾两张分别复制多一张, 排在各自的首尾, 图中依次排开的图片框标号分别问inde = 0~5; 如图:

image.png
当处在上图所示的位置, 并且向右滑动之后, 显示的是"图3"(也就是index = 0);
这时候, 后台需要做的事情是:
悄悄地将index = 0 变成 index = 4;

同样的, 当向左滑到最右侧的"图3"的时候, 后台需要做的是:
悄悄地将index = 5 变成 index = 1;

通过这种思路实现无线轮播.

3,两种思路的优劣对比

其实两种思路差别并不是很大, 主要的优劣是这样的:
思路A :
优点: 只需要创建三个图片框, 占用内存少;
缺点: 实现思路稍微复杂一点, 而且代码比较多; 在实际使用里面, 当网速比较慢的时候, 首次加载图片变慢的话可能会出现滚动灰色背景的画面.
思路B :
优点: 实现思路比较简单, 而且代码量少, 容易理解一点, 而且相对于A,网速慢的情况下出现轮播灰色背景框的几率少一点;
缺点: 创建比较多的图片框, 占用内存比较多一点.

4,我的推荐

推荐思路B; 为什么呢, 因为其实B占用的内存也多不到哪里去, 但是思路啊代码啊各方面都要比A好很多.

相关文章

  • iOS实现轮播图的两种思路

    1,概述 这里我先说一下自己所说的"思路"可能跟大家理解的"思路"不大一样; 什么定义啥的太宽泛了, 俺也不大会概...

  • 仿造天猫、京东、凡客等,轮播图的开发(jQuery)

    轮播图思路:1、轮播图布局2、定时器实现轮播效果3、指示器的鼠标移入(mouseenter)、移出(mousele...

  • Swift实现轮播图以及自定义UIPageControl

    无限轮播的实现思路 轮播图最核心的部分是如何实现无限轮播。我的实现方式是: 在UIScrollView上添加三个U...

  • Jquery 轮播图制作

    轮播图制作主要思路:实现轮播图滚动的效果,主要是使用animate()函数来实现这个过渡的动画效果。当向左点击时,...

  • JavaScript实现轮播图的两种思路

    这里粗略记录一下在项目中轮播图实现的两种思路。 首先是内容区域的width和height固定,也就是最常见的情况,...

  • 实现轮播图

    实现轮播图 思路: 通过js来控制轮播的图片的样式,可以控制display:none or block 可以控制o...

  • swift第三方控件

    iOS开发:Swift实现的轮播图、无限循环视图控件CYCircularScrollView CycleScrol...

  • 2018-10-25

    轮播的实现 看了网上很多轮播实现的例子,自己简单理了理。 整体思路是,写一个盒子设置成一张轮播图的高度和宽度,设置...

  • 小程序利用swiper实现轮播图

    小程序实现轮播图比iOS简单很多 .wxml代码: .wxss代码: .js代码:

  • Swift轮播图

    最近在学习swift,就用swift实现轮播图来练习一下 轮播图的创建有两种方式: 显然使用collectionV...

网友评论

    本文标题:iOS实现轮播图的两种思路

    本文链接:https://www.haomeiwen.com/subject/oqcadxtx.html