美文网首页
多轮播图的设计

多轮播图的设计

作者: 双鱼子曰1987 | 来源:发表于2018-04-03 15:54 被阅读0次

列表展示多个轮播图

  • 多个轮播图同时显示
  • 多个轮播图不定时进行轮播动画
  • 对应呈现的关系:1个TableView、一个Cell对应N组轮播控件、一个轮播控件对应M组图片
轮播图的实现
  • 网上轮播控件实现方案分析
    • 如基于UIScrollView+2或者3ImageView做无限循环轮播。没有必要做无限自由滚动,不适合。
    • 基于CollectionView做的轮播;方案太多余复杂。在Cell嵌入CollectionView,同时还对IndexPath不断的操作,基于导致Crash。
  • 最大问题在于轮播触发机制:Timer
    • 一般轮播效果都是创建Timer,定时去触发轮播效果;这种设计方式存在的弊端在于Timer必须手动销毁,否则会引起循环引用。
    • 列表中同时存在多个轮播控件,timer就会有N个,如果有删除和增加,对于Timer的管理将是灾难性,
    • 多个Timer维护的成本变得很困难且极易出错
  • UIImageView的AnimateImages属性,效果太僵硬,丢弃
  • 自动循环播放的帧动画效果,稍微研究了下也不行
    • 关在在于每次循环的起点没变化监听
    • 动画需要初始化之后,在于修改很困难,轮播的图片是可能发生变化的
自定义轮播控件
  • 基于数据驱动方式的列表多轮播控件设计

  • 轮播控件动画效果

    • 两个ImageView,可见的InView,不可见的OutView,
    • 实现上下左右四个方向移入移出的动画效果,使用UIView animateWithDuration实现
    • 四个方向动画,随机选择,内部自己控制
  • 动画的触发机制

    • 只的存在一个Timer,控制所有轮播图的动画
    • 统一更新数据源的imageIndex,
    • 统一控制动画随机显示逻辑,避免同时刷新动画,效果不好,同时也减少不必要计算
  • 如何通知轮播控件触发动[图片上传中...(多轮播图列表显示.png-7cc429-1522741914448-0)]

    • Notification方式,很繁琐,舍弃
    • KVO监听ImageIndex,同样会对Self强引用,导致Cell没有办法被释放
    • 最好的方式弱引用Delegate
多轮播图列表显示.png
存在的问题
  • 由于ItemView是被复用的,导致Model对应ItemView是不一致的~因此如何保证,复用的时候,更新Model的delegate可以有效避免不必要的刷新,保证只有显示的View才会被刷新
  • model.delegate同步问题,可能存在在动画循环中,访问model.delegate的时候,由于Cell的复用导致ItemView的复用,model.delegate会发生改变

相关文章

  • 多轮播图的设计

    列表展示多个轮播图 多个轮播图同时显示 多个轮播图不定时进行轮播动画 对应呈现的关系:1个TableView、一个...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 2019-02-25

    轮播图数据库 表 设计

  • Axure原型设计——轮播图

    轮播图是网页设计或者APP设计常见的元素,学会使用axure原型工具制作轮播图对制作PC端或移动端的原型都非常实用...

  • 网页体验报告:The Shift

    关于The Shift 发现优点 轮播图的设计 首先是静态设计,轮播图的构造就很不一般了,几何形状和文字、图片的组...

  • axure原型设计之轮播图

    效果图:http://ahzcnr.axshare.com/ 轮播图是网页设计或者APP设计常见的元素,学会使用a...

  • Banner 怎么实现轮播不同尺寸的图片

    需求: UI设计APP的 BannerView 轮播图的图片每个Item尺寸不同,比如:设计 BannerView...

  • 无标题文章

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。它们各具特色,各有用处。 1.传统轮播图 第一步...

  • 轮播图

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。 1.传统轮播图 第一步,得到元素 第二步,设置...

  • Django在线教育网站开发(四)完善user的models设计

    1:增加邮箱验证码的models的设计 2:增加轮播图的models的设计

网友评论

      本文标题:多轮播图的设计

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