美文网首页工作生活
一个带间隔的轮播图小轮子

一个带间隔的轮播图小轮子

作者: 举个栗子wow | 来源:发表于2019-07-01 18:22 被阅读0次

写了个小轮子,其实和之前的三个图片轮播差异不大。看过一些第三方的小轮子,觉得都复杂化了,需要跟着一步一步做个理解才能自己custom代码,我觉得原理简单易懂,代码精简的轮子用着才爽,改起来效率也高。

这个小轮子原理很简单:有序号从1~5 5个图片,主显示的是第3张图片,每当滑动完毕之后切换数据赋值,然后重置到显示第3张。

为什么需要5张图片而不是之前的3张,请看图:


需要5张图片

青色是处在正中间的图,也就是第3张图片,当滑动的时候,其右侧的最大可见度达到了第5张。

之前整理过的遇到的问题和解决方案:
说下遇到的问题和解决思路:

1.选择scrollerView和每个子视图一样大还是比每个都大一些显示出左右子视图?
考虑到整页滑动的效果这里必须要选择前者。如果你的scroll比每个子视图都大,那么整页滑动会使视图滑动位置错乱。至于显示出左右子视图,我们可以利用clipsTobounds的属性来达到这个效果。

2.在哪个代理方法中去修正下标达到对准数据源?
scrollViewDidEndDecelerating。这个方法中无论是拖拽还是定时器都会触发这个方法。

3.如何更简单地计算坐标问题?
关闭回弹效果bounces=NO。回弹效果会使计算坐标变化变得复杂和不稳定,关闭回弹在体验上也不会降低太多。

4.由于打开了clipsTobounds,可见区域有一部分是无法响应滑动的手势的,如何处理?
重写hitTest方法,传递滑动效果

5.图片固定5张,如果数据小于5张怎么处理?
监听数组变化,对应处理2、3、4三种情况,如果是3张,则数组中为:2、3、1、2、3状态

最后写出来之后发现一个小问题,由于是5张视图,当视图数量为2和4时效果会有些小问题,为2时数组调整为:a,b,a,b,a,此时开头的a和最后的a会首位相连有点小尴尬 - - ,后期想想怎么优化一下这个地方,最简单的就是再加一个视图,偶数视图个数可以解决这个小问题。

还没写放大缩小的效果,这个过几天加上,加的话其实方式也很简单,因为操作的视图只有2、3、4三张,不需要大量的判断处理。

大致的思路和做法都写在Demo中了:轮播图小轮子

相关文章

  • 一个带间隔的轮播图小轮子

    写了个小轮子,其实和之前的三个图片轮播差异不大。看过一些第三方的小轮子,觉得都复杂化了,需要跟着一步一步做个理解才...

  • 无限Banner轮播图

    GJImageCarouselView 自己写的Banner轮播图,自动循环,无限轮播。可以设置时间间隔、占位图。...

  • 造了个小轮子(轮播图)

    "VLoopScrollView" 轮播图轮子 放个图压压惊 ... 好久以前写的。一直也没太想过要上传到gith...

  • iOS开发—简洁易懂的分析三张图实现无限轮播

    轮播图,这个东东用的不是一般的多呀,网上有很多轮子,像:三张图/N+1张图/多张图实现无限轮播,起初作为屌丝的我,...

  • iOS无限轮播器

    最近自己动手造轮子,实现了一个无限图片轮播器,并扩展了丰富的自定义属性,可以自定义滚动方向、播放间隔、点击事件等。...

  • 【Android】造轮子:轮播图

    前言 目前市场上的APP中,轮播图可以说是很常见的。一个好的轮播图,基本上适用于所有的APP。是时候打造一个自己的...

  • 轮播图控件 带描述文字的轮播图控件

    项目需导入SDWebImage 类型一 简单的轮播图 类型二 带描述的轮播图 自定义pageControl的位置 ...

  • 技巧

    一、轮播图 1、轮播图只需要移动对应序号 * 图片自身宽度即可 要限制点击太快只需要判断两次点击的间隔时间小于10...

  • 微信小程序从零开始开发步骤(五)轮播图

    上一章完成页面自定义分享,这一章来说说轮播图,最常见的一个轮播图,中间带小圆点,自动轮播。 Swiper是滑动特效...

  • react-native-EZSwiper卡片轮播组件Andro

    因项目需求,需要做一个卡片的轮播图。然后顺理成章的找到react-native-EZSwiper轮子,很赞。 io...

网友评论

    本文标题:一个带间隔的轮播图小轮子

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