轮播/Carousel/广告位/banner***scrollview


开源方案候选:

https://github.com/gsdios/SDCycleScrollView        “iOS第一图片轮播器” 



实现原理解释:

http://shengpan.net/pscarouselview/

谈谈组件封装的思路和实现--PSCarouselView

前两天面试了一个应聘者,他的演示项目里有广告轮播功能。恰好之前我封装过一个实现了此功能的控件,于是就顺着他广告轮播的实现一直往下聊,从需求的抽象一直聊到各种实现的细节和需要考虑的问题等等。组件的封装是开发中比较有趣的一件事。今天我们就拿轮播控件举例,聊聊组件的封装。

授人予渔先要授人予鱼。先给出鱼(PSCarouselView),再慢慢讲渔。

分析需求

一般来说,我们在封装组件的时候,会先思考以下几点

  • 这个组件要做什么
  • 这个组件至少需要知道哪些信息
  • 这个组件会反馈哪些信息

这个阶段,我们还不会考虑组件的具体实现,仅仅对其做抽象。我们要做的东西不仅仅是适用于单个项目的,而应该是通用的,可以适应大部分同种类需求的。

Scene I

BA说,客户要在首页加个轮播。于是半天后设计师出了张图,看起来大概像这样:

我们按照上面的思路,拆分一下这个需求。

这个组件要做什么

显而易见的:

1.展示多张图片

2.可以向左向右翻页

3.PageControl的状态会根据图片的滚动而相应改变

隐含可能要做的:

1.支持左右两侧无限循环滚动

2.自动轮播

3.支持手动滑动

4.支持点击并进行相关的响应

5.图片的缓存

这个组件至少需要知道哪些信息

一个封装得优秀的复杂度不高组件就像一个魔法盒子,只需要触发启动开关,就可以达到你期待的效果。极简的触发参数和条件是组件封装的精髓。在内容型App中,轮播图一般会用作推荐内容展示区域。在O2O类App中,轮播图一般会用作广告位。因此轮播区域图片的内容绝大多数都是动态的。在一般的C/S开发中,客户端要获取存储在服务器上的图片会获取它的URL,然后在需要的时候根据URL异步地加载这些图片。因此,我们找出了的轮播空间第一个必备条件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值