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

2023-11-04 08:58

本文主要是介绍轮播/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异步地加载这些图片。因此,我们找出了的轮播空间第一个必备条件:

这篇关于轮播/Carousel/广告位/banner***scrollview的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/344652

相关文章

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。

JavaScript练手小技巧:利用鼠标滚轮控制图片轮播

近日,在浏览网站的时候,发现了一个有意思的效果:一个图片轮播,通过上下滚动鼠标滚轮控制图片的上下切换。 于是就有了自己做一个的想法,顺带复习下鼠标滚轮事件。 鼠标滚轮事件,参考这篇文章:鼠标滚轮事件-CSDN博客 一、HTML和CSS 无论怎么样的滚动,首先要制作图片轮播的结构和样式。 HTML: <div class="box" id="box"><ul class="list" i

collectionView 无限轮播图

拿一组4张的轮播图作为例子 思路主要是 1. 拿到一组图片后, 把绿色图1和绿色图4多复制出来一份, 把红色图1(复制的图1)放在最后, 红色图4(复制的绿色图4)放在首位, 现在一共是6张图. 2. 左滑从绿色图1到红色图1时,就迅速把collectionView的contentoffset 设置到图1的位置. 3.右滑时,到红色图4就把collectionView的frame设置到绿色图

Spring Boot-自定义banner

在 Spring Boot 应用中,你可以自定义启动时显示的 banner。这些 banner 可以包括图形、文字或者其他形式的标识。如图所示: 1. 使用 banner.txt 文件 默认情况下,Spring Boot 使用项目的 banner.txt 文件中的内容作为启动时的 banner。你可以在 src/main/resources 目录下创建一个名为 banner.txt 的文件

兔子--计算listview的高度,解决listview与scrollview控件冲突

/** * 计算ListView的高度 * * @param listView */ public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter OrderGoodsAdapter listAdapter = (OrderGoodsAdapter) listView.getAda

ScrollView的android:fillViewport=true

http://stackoverflow.com/questions/2599837/linearlayout-not-expanding-inside-a-scrollview http://blog.csdn.net/linqingf/article/details/6573602 当fillViewport="true" 设置为 true里 , scrollV

ScrollView嵌套listview滑动位置底部bug

三种方案,个人推荐第三种: 1 sv.fullScroll(ScrollView.FOCUS_UP); 2 sv.setScrollY(0); 3 sv.smoothScrollTo(0,20); 滑动冲突解决listView: public class ListViewForScrollView extends ListView {public ListVie

scrollView(下)

这篇继续写scroll,不过这次不是用scrollView这个控件,而是自己编写一段代码实现拖动图片。假想有一张很大的地图,然后屏幕只能显示它的一角,这时候就要通过拖动来查看其他部分。本来是要用scrollView实现这个功能,可用起来始终那么别扭,这不,上午一气之下自己搞了个可以拖动图片的代码。 一、首先在init中添加自己要实现拖动到图片。 [cpp] view plain c

cocos2d-x ScrollView(上)

scrollView 的调用问题困扰我很久,昨天才有时间继续研究这个,可惜最后还是没能完全解决它存在的问题。。。 看头文件: [cpp] view plain copy #ifndef __HELLOWORLD_SCENE_H__  #define __HELLOWORLD_SCENE_H__    #include "cocos2d.h"    #include "../..

原生js实现轮播图-setInterval, setTimeout

原生js实现轮播图-setInterval, setTimeout 目录 文章目录 前言代码实现`setTimeout`和递归实现`setInterval` 效果展示 前言 利用原生js实现轮播图代码复制可用 代码实现 setTimeout和递归实现 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"