无限轮播

简介: 无限轮播

简述:无限轮播是大家在项目里面都会遇到的一件事,一般是用UIScrollView或者UICollectionView来做的,下面介绍几种用法


1.网络加载的图片连接来实现无限轮播



<1> UICollectionView做的服务器请数据回来来展示数据的轮播


image.png

image.png


加载网络图片连接的代码 密码: nnr3


<2> DCPicscrollView封无限轮播,作为uitabviewcell的第一段(常用)


image.png


加载用网络图片(调用下面的两个方法) 数组是网络请求的数组连接和本地图片的连接

static NSString *cellID = @"cellID";
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
     if (!cell) {
         cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
     }
     if(array.count > 0){
         [self demo1:array view:cell];
     }else{
         [self demo2:dataArray view:cell];
     }
     return cell;
  • (void)demo1:(NSArray *)netArr view:(UIView *)view{


//显示顺序和数组顺序一致
//设置图片url数组,和滚动视图位置
DCPicScrollView  *picView = [DCPicScrollView picScrollViewWithFrame:CGRectMake(0, 0, WIDTH, 250) WithImageUrls:netArr];

//图片被点击事件,当前第几张图片被点击了,和数组顺序一致


[picView setImageViewDidTapAtIndex:^(NSInteger index) {


printf("第%zd张图片\n",index);
 /*
 LunBomodel *modell = lunBodataArray[index];
 WebViewController *webViewController = [[WebViewController alloc]init];
 webViewController.lianjie = modell.ad_url;
 [self.navigationController pushViewController:webViewController animated:YES];
 */

}];

//default is 2.0f,如果小于0.5不自动播放
    picView.AutoScrollDelay = 3.0f;//滑动速度
 // picView.textColor = [UIColor redColor];
 [view addSubview:picView];
//下载失败重复下载次数,默认不重复,
[[DCWebImageManager shareManager] setDownloadImageRepeatCount:1];
//图片下载失败会调用该block(如果设置了重复下载次数,则会在重复下载完后,假如还没下载成功,就会调用该block)
//error错误信息
//url下载失败的imageurl
[[DCWebImageManager shareManager] setDownLoadImageError:^(NSError *error, NSString *url) {
 NSLog(@"%@",error);

}];

}

//本地加载只要放图片名数组就行了****************************

-(void)demo2:(NSArray *)arr view:(UIView *)view {

DCPicScrollView *picView1 = [DCPicScrollView picScrollViewWithFrame:CGRectMake(0,0,WIDTH, 250) WithImageUrls:arr];

picView1.backgroundColor = [UIColor clearColor];

[picView1 setImageViewDidTapAtIndex:^(NSInteger index) {

//这里是显示点击的第几张图片

}];

picView1.AutoScrollDelay = 3.0f;
 [view addSubview:picView1];

}

DCPicscrollView封无限轮播  密码: ak2e

<3>真实的无限轮播以及下面的布局思路


image.png


真实的无限轮播以及下面的布局思路 密码: uq43


2.本地的无限轮播


<1>采用自己封装的类来做的GGBannerView(里面用UICollectionView做的)


image.png


使用方法:(具体的到里面一看就明白了)

GGBannerView *bannerView = [[GGBannerView alloc]initWithFrame:CGRectMake(0, 100, 414, 200)]; 
 bannerView.isTimer = YES;
 bannerView.delegate =self;//在这里挂代理是为了方便在有网络时知道点击的shi哪张图片跳进那个连接里面
 [self.view addSubview:bannerView];//把视图放到表头或者其他地方
 bannerView.sourceArray = @[@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg"];//放图片的名字就好
//当点击图片是知道点击的是哪一张
  - (void)bannerViewCurrentPage:(NSInteger)currentPage
  {
      NSLog(@"%ld",currentPage);
  }

本地无限轮播的源码  密码: 8dh7

可以拉伸的本地无限轮播的源码  密码: k47v


3.其他的无限轮播



循环滚动  密码: qag4

瀑布流轮播  密码: dnb5

轮播支持本地图片和网络图片  密码: 2k84

广告图的无限循环滚动 密码: cq8k

播放本地的gif图  密码: gtjj

3D效果轮播  密码: icka

3D动画轮播图  密码: 5ue3

目录
相关文章
|
7月前
|
缓存 固态存储 Windows
如何让内存发挥到最大效能?全面优化指南,提升电脑运行体验
电脑内存使用不合理会导致卡顿,本文教你如何优化内存性能。检查内存容量与主板支持上限,考虑升级或调整配置;关闭后台程序、管理浏览器标签、结束异常进程以释放内存;设置虚拟内存、调整视觉效果、定期重启提升效率;必要时增加内存条、选择高频内存、更换固态硬盘。避免盲目清理内存和依赖大内存忽视其他硬件瓶颈。只需合理设置,无需额外花钱,就能显著提升电脑速度。
|
应用服务中间件 nginx 域名解析
|
10月前
|
人工智能 自然语言处理 搜索推荐
13.5K Star!支持5国语言+全栈语音生成,这个开源AI语音项目绝了!
CosyVoice是由FunAudioLLM团队开发的多语言大语音生成模型,支持中文、英语、日语、韩语和粤语等5种语言。该项目提供从推理、训练到部署的全栈能力,具备零样本语音克隆、跨语言合成、指令控制等前沿功能。其技术架构包括底层模型、多语言支持、框架支持及部方案等,性能优越,RTF&lt;0.2,GPU内存&lt;4GB,QPS&gt;20。相比同类项目,CosyVoice在语言支持、特色功能和部署难度上表现出色,支持本地部署保障数据隐私,并大幅降低商业方案成本。适用于自媒体创作、在线教育、游戏开发、智能硬件和影视制作等多种场景。
981 0
|
机器学习/深度学习 算法 PyTorch
DeepSeek 背后的技术:GRPO,基于群组采样的高效大语言模型强化学习训练方法详解
强化学习(RL)是提升大型语言模型(LLM)推理能力的重要手段,尤其在复杂推理任务中表现突出。DeepSeek团队通过群组相对策略优化(GRPO)方法,在DeepSeek-Math和DeepSeek-R1模型中取得了突破性成果,显著增强了数学推理和问题解决能力。GRPO无需价值网络,采用群组采样和相对优势估计,有效解决了传统RL应用于语言模型时的挑战,提升了训练效率和稳定性。实际应用中,DeepSeek-Math和DeepSeek-R1分别在数学推理和复杂推理任务中展现了卓越性能。未来研究将聚焦于改进优势估计、自适应超参数调整及理论分析,进一步拓展语言模型的能力边界。
2104 8
DeepSeek 背后的技术:GRPO,基于群组采样的高效大语言模型强化学习训练方法详解
|
前端开发 IDE Java
构建一个基于React和Spring Boot的简易聊天室应用
构建一个基于React和Spring Boot的简易聊天室应用
474 0
|
弹性计算 Linux 应用服务中间件
使用ECS部署并使用Docker
本文介绍如何在云服务ECS实例上,部署并使用Docker。
|
关系型数据库 MySQL 程序员
在 Windows 命令提示符下启动 MySQL:net start mysql 发生系统错误 5。 拒绝访问。解决方式小结
在 Windows 命令提示符下启动 MySQL:net start mysql 发生系统错误 5。 拒绝访问。解决方式小结
1479 1
在 Windows 命令提示符下启动 MySQL:net start mysql 发生系统错误 5。 拒绝访问。解决方式小结
|
编解码 运维 数据可视化
把kibana装到grafana里要几步
我们想在grafana里给elasticsearch数据源做词云可视化,由于grafana没有词云方面的插件,我们发现kibana里有词云方面的可视化方案tag cloud。我们尝试着把kibana的词云的图形嵌入到grafana里来快速实现了grafana的词云功能。那么把kibana装到grafana里要几步呢?答案是三步。
把kibana装到grafana里要几步
|
Linux 开发工具 Windows
pip的官方源替换为国内高速镜像源
pip的官方源替换为国内高速镜像源
6524 0
pip的官方源替换为国内高速镜像源
|
Linux
从ramdisk根文件系统启动Linux 二
今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下。其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆)。开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM。
1202 0

热门文章

最新文章