05图片轮播控件开发文档

为何要再写图片轮播控件

当然图片轮播控件这种东西真是被写烂了,这里再写一次的原因有三点:一是目前已知的图片轮播控件都在重复同样的功能点(类似于简书客户端的轮播),其实开发者对于图片轮播控件还有很多其它的需求;二是目前我并没有看到比较好的代码,同时基于开发者对于轮播控件的复杂需求,代码也会变得复杂起来(上千行的代码实现);三是我在学校里组织的兴趣小组打算同时编写iOS、Android、Web(基于JS)三个平台的代码,提供一致的特性和服务,并将其开源。三个平台的代码均会在对应作者的博客中进行详细讲解,代码作者的详细信息如下:

说明

该文档由梁志鹏编写,如有问题请直接在评论中回复或邮件联系mingjiameng@sina.com。文档主要描述了用户需求、规范了接口及控制变量。文档中的示例均基于iOS平台,仅供参考。在具体的代码实现中,请注意后期的优化(提高安全性、鲁棒性、性能等,具体请参照),并在接口中提供详细的注释。把文档直接当一篇文章写的目的有两个:一是将来任何一个人都可以参照这个文档尝试实现图片轮播控件;二是这个文档正好可以作为控件的使用手册。

用户需求

待更。。。话说切图真的好麻烦啊。。。

0.1版本应该实现的功能点

输入:控件的frame(位置及大小)、图片数组(images)
输出:一个图片轮播组件,该组件带有指示器(组件内部下方的小圆点),能够定时切换图片并更新指示器。注意轮播的含义是播放到最后一张图片后,又重新开始播放第一张图片,这两张图片之间的切换效果应该和其它图片之间的切换效果相同。具体的效果图参照知乎日报或者简书的图片轮播组件。

接口:(以iOS为例)

@property (nonatomic, strong, nonnull, readonly) NSArray *images; // image array that you use to initialize this instance.

/*
 * you are supposed to use this initializer to get an instance.
 * if you try to get an instance by system initializer, you will fail.
 * param 'images' should contain only UIImage object, or you will receive a nil instance.
 * if array 'images' contain no object, you will receive a nil instance. 
 */
- (nullable instancetype)initWithFrame:(CGRect)frame andImages:(nonnull NSArray *)images;

用户通过该方法得到一个控件的实例,同时在使用过程中可以访问images数组,但不能修改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,892评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,325评论 4 61
  • 从答辩时间确定到突发奇想去迪士尼花了一个小时,从想到开始实施旅行计划花了两个小时,怎么说也算是第一次说走...
    younger柯阅读 2,939评论 2 3
  • 1.那时候,人们在示拿建城造塔,说一种语言 2.耶和华把人从那里分散到全地上,使他们的语言混乱 3.闪的后代:闪 ...
    瓦登之湖阅读 9,095评论 0 0
  • 各位家长朋友们下午好,欢迎来到高一十五班,虽然和各位第一次见面,其实大家早在微信中和qq群中相熟已久,许多家长也都...
    心如美玉阅读 5,192评论 2 7