iOS随手整一个无限轮播图

IOS-文字滚动的Label 文字可以滚动的Label,包括两种方式,支持暂停滚动和恢复滚动! 立即下载

 

 

#import "ViewController.h"

 

@interface ViewController ()<UIScrollViewDelegate>

{

    UILabel *label1;

    UILabel *label2;

    UILabel *label3;

    NSInteger _page;

    

    NSMutableArray * _dataArray;

    UIScrollView *sc;

}

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    sc = [[UIScrollView alloc] init];

    sc.frame = CGRectMake(0, 0, self.view.frame.size.width, 100);

    sc.contentSize = CGSizeMake(self.view.frame.size.width*3, 0);

    sc.delegate = self;

    sc.pagingEnabled = YES;

    [self.view addSubview:sc];

    

    _dataArray = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

    [sc setContentOffset:CGPointMake(sc.frame.size.width, 0)];

    

    _page = 0;

    [self reloadData:_page];

    

}

-(void)reloadData:(NSInteger)index{

    

    if (!label1) {

        label1 = [[UILabel alloc] init];

        label1.frame = CGRectMake(0, 0, sc.frame.size.width, 100);

        label1.textAlignment = NSTextAlignmentCenter;

        label1.backgroundColor = [UIColor redColor];

        [sc addSubview:label1];

    }

    if (index==0) {

        label1.text =_dataArray[_dataArray.count-1];

    }else{

        label1.text =_dataArray[index-1];

    }

    

    if (!label2) {

        label2 = [[UILabel alloc] init];

        label2.frame = CGRectMake(sc.frame.size.width, 0, sc.frame.size.width, 100);

        label2.textAlignment = NSTextAlignmentCenter;

 

        label2.backgroundColor = [UIColor redColor];

        [sc addSubview:label2];

    }

    

    label2.text =_dataArray[index];

 

    if (!label3) {

        label3 = [[UILabel alloc] init];

        label3.frame = CGRectMake(sc.frame.size.width*2, 0, sc.frame.size.width, 100);

        label3.textAlignment = NSTextAlignmentCenter;

 

        label3.backgroundColor = [UIColor redColor];

        [sc addSubview:label3];

    }

    if (index == _dataArray.count-1) {

        label3.text =_dataArray[0];

 

    }else{

        label3.text =_dataArray[index+1];

    }

 

 

}

 

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    

    if (scrollView.contentOffset.x > scrollView.frame.size.width) {

        if (_page == _dataArray.count-1) {

            _page = 0;

        }else{

            _page++;

        }

        

        

    }else if(scrollView.contentOffset.x < scrollView.frame.size.width){

        if (_page == 0) {

            _page = _dataArray.count-1;

        }else{

            _page--;

        }

    }

    

    [self reloadData:_page];

    [scrollView setContentOffset:CGPointMake(scrollView.frame.size.width, 0)];

 

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

 

@end

 

ios-AdLabelAutoScroll 文字轮播控件.zip 可以到我git上去看详情https://github.com/HRongChen/AdLabelAutoScroll.git 立即下载

相关推荐

3步搞定专利数据爬取:用Selenium绕过国家知识产权局反爬(附完整代码)

本文详细介绍了3种高效获取专利数据的技术方案,重点解析了使用Selenium绕过国家知识产权局反爬的实战方法,并提供了完整代码示例。文章还探讨了Requests+lxml轻量级方案和混合技术策略,帮助开发者根据需求选择最佳数据爬取方案,特别适合需要专利统计数据的开发者参考。

weixin_29029995的博客 1110

iOS文字轮播简单实现(UILabel)

因项目需求,要做一个文字轮播用来展示一些通知内容,以前也有过这个需求,但之前都是在网上找的第三方,现在有点时间就自己写了个简单的。整体思路:用一个UILabel来展示内容,通过UIView动画来实现滚动效果,通过控制其坐标和隐藏状态来修改其滚动的起始位置。实现比较简单,活不多说,直接贴代码了。.h文件#import &lt;UIKit/UIKit.h&gt; @protocol YMNotice...

Bright 3564

机器学习-深嵌交叉验证(Nested Cross-Validation)

Section I: Code and Analyses 第一部分:代码 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from...

Santorinisu Blogs 2716

iOS-文字滚动的Label

在我们开发的过程中会遇到文字的长度大于Label的宽度的情况,有三种处理方式: 1、显示不下的内容用“。。。”来代替;(缺点:没法显示全内容) 2、采取折行的方式;                               (缺点:高度没法确定,会影响其他内容的显示) 3、让文字在label中滚动显示, 这种方式既节省了空间,又可以让用户看到所有的内容; 其中方式3又可以有两种方式,

lifreshman的专栏 4684

Paho Asynchronous MQTT C Client Library--MQTTAsync API

异步MQTT 客户端库for C

yoyo勰的博客 1264

从零到一:用STM32 FOC算法驯服无刷电机的艺术

本文详细介绍了如何使用STM32和FOC算法实现无刷电机的高性能控制。从硬件搭建、参数识别到闭环调节,一步步解析FOC算法的核心原理与调优技巧,帮助开发者掌握电机控制的关键技术,实现从零到一的精准驯服。

kkk56的博客 917

iOS 滚动label(LED,跑马灯等) 快速实现源码

ios 滚动label 快速实现源码。这里使用的两个label,挪动frame实现。简单使用,这里仅抛砖引玉而已。描述原理。

Dogg 5673

华为OD机试真题2025双机位C卷 Python&JS 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 403

iOS中UILabel滚动字幕动画的实现

[UIView animateWithDuration:3.0 delay:0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse animations:^{             cell.addressBtn.titleLabel.transform = CGAffineTransfo

天道酬勤 4020

Android影像系统架构专家面试指南

传音控股招聘影像系统架构专家,要求8年以上开发经验,5年架构设计经验,精通Android Camera开发及性能优化。该职位需负责手机影像软件架构设计、技术选型及跨平台适配,重点解决"快稳省"体验优化。面试评估聚焦三大维度:技术方面考察HAL层架构设计、多帧合成优化等能力;系统开发关注低光降噪等场景的算力平衡;团队管理侧重跨部门协作与项目交付。候选人需展现对CamX-CHI等架构的深入理解,具备量化分析性能指标的能力,并能主导旗舰机影像项目全周期落地。

郑伟强dev的专栏 943

实战篇(七):使用Processing和PixelFlow库创建交互式流体太极动画

类:用于配置流体运动的参数,比如圆的位置、半径、运动的角度和速度以及颜色等。类:实现了接口,用于更新流体物理仿真的状态,同时整合声音输入作为流体动态变化的一部分。my_update方法:是流体物理仿真更新的核心,它计算流体粒子的速度和位置,并且将这些数据传递给流体库来模拟流动。现在,让我们进一步分析并解释每个部分的作用以及如何操作。float x;// 圆心位置xfloat y;// 圆心位置y// 半径// 是否是顺时针// 圆周运动,弧上的点位置,以及上一帧的点位置// 角度。

帅小柏的博客 1635

ios自动滚动UILabel,跑马灯,有两种滚动方式

自动滚动UILabel,跑马灯,有两种滚动方式(ios)

杨克进的博客 1万+

C#利用最小二乘法拟合任意次函数曲线

给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。因此,我们需要一种新的逼近原函数的手段: ①不要求过所有的点(可以消除误差影响);②尽可能表现数据的趋势,靠近这些点。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 [1],其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达,具体可以查阅相关资料。最小二乘法(又称最小平方法)是一种数学技术。

qq_30725967的博客 3755

UILabel上添加gif动态图

遇到一个新需求,需要在富文本上添加gif或者其他动态图,原来的使用的富文本不支持动态图,就研究下了国外大牛的demo,其实还是很简单的,主要原理就是把动态图切成一帧帧图片,然后利用NSTimer和动态图的周期循环在UILabel上画图片。。。但是亲测了一下不会引起cpu和内存方面的担忧,所以我们可以在第三方的富文本源码上进行修改或者重新封装一下,废话不多少,直接上代码。 1.拿gif为例

codeWorldPeace的专栏 2503

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

error: macro names must be identifiers

今天突然遇到了这么一个问题,查了下是头文件写错了,#include 写成#define,改过来就好了,还有一种可能出错的地方就是在写宏定义的时候必须要字母开头。

codeWorldPeace的专栏 2142

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

解决UITapGestureRecognizer 与 UITableView 点击事件冲突

添加UITapGestureRecognizer 的delegate 给当前的UIViewController 然后重写下面代理方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {     if ([NSStr

codeWorldPeace的专栏 1710

SVN提交出现这个提示: is scheduled for addition, but is missing

"svn revert xxx.c --depth infinity"

codeWorldPeace的专栏 1104

iOS 验证特殊字符,身份证,邮箱,号码,用户名等

//1、数字字符校验 #define NUMBERSPERIOD @"0123456789." + (BOOL)checkNumber:(NSString *)string {     NSCharacterSet*cs;     cs =[[NSCharacterSet characterSetWithCharactersInString:NUMBERSPER

codeWorldPeace的专栏 1012

mac下 svn 导入新文件

1.首先在Prefer->enceAccount中连接svn 2.在终端中输入命令 svn import -m "New import" myproj http://svn.red-bean.com/repos/trunk/misc New

codeWorldPeace的专栏 839

the file couldn't be opened because you don't have permission to view it 解决办法

Project---Build Setting中  修改Build Options中的 Compiler for c/c++/objective-c,改成Default Compiler(Apple LLVM 6.0)

codeWorldPeace的专栏 705

MQTT WebSocket TCP/IP

http://www.cnblogs.com/shanyou/p/4085802.html

codeWorldPeace的专栏 574

iOS 开发 数据去重小逻辑

NSMutableArray *newGroupArray = [[NSMutableArray alloc] init];     for(int i=0;i<[groupArray count];i++ ){         GroupsByUserIDInfo *info1 = [groupArray objectAtIndex:i];         if(i==0

codeWorldPeace的专栏 559

iOS 关于时间、日期的各种计算

两个时间比较大小(结果) //当天日期         NSDate *date1=[df dateFromString:[df stringFromDate:today]];   //结束时间         NSDate *date2=[df dateFromString:[[taskModel.endTime  componentsSeparatedByStri

codeWorldPeace的专栏 550

iOS 学习Block小结

首先  Block实体形式如下: ^(传入参数){行为主体};

codeWorldPeace的专栏 533

iOS 单例模式

顾名思义,单例就是在一个工程里面只有一个shi li,

codeWorldPeace的专栏 460
上一篇: 解决UITapGestureRecognizer 与 UITableView 点击事件冲突
下一篇: UILabel上添加gif动态图
KingOfTheCoders
博客等级 码龄12年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值