iOS实现图片自动切换效果
本文实例为大家分享了iOS实现图片自动切换的具体代码,供大家参考,具体内容如下
#import"ViewController.h" #defineImageViewCount5 @interfaceViewController()@property(weak,nonatomic)IBOutletUIScrollView*imageScrollView; @property(weak,nonatomic)IBOutletUIPageControl*imageViewPageControl; @property(strong,nonatomic)NSTimer*timer; @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; [selfaddImageView2ScrollView]; self.imageScrollView.contentSize=CGSizeMake(self.imageScrollView.frame.size.width*ImageViewCount,0); self.imageScrollView.delegate=self; self.imageScrollView.pagingEnabled=YES;//UIScrollView支持拖动分页 self.imageViewPageControl.numberOfPages=ImageViewCount; [selfaddScrollTimer]; } -(void)rotatePic{ intcurrentPageIndex=self.imageViewPageControl.currentPage; if(++currentPageIndex==5){ currentPageIndex=0; } CGFloatoffsetX=currentPageIndex*self.imageScrollView.frame.size.width; [UIViewanimateWithDuration:1animations:^{ self.imageScrollView.contentOffset=CGPointMake(offsetX,0); }]; } /**添加图片到imageScrollView*/ -(void)addImageView2ScrollView{ CGFloatimageWidth=self.imageScrollView.frame.size.width; CGFloatimageHeight=self.imageScrollView.frame.size.height; for(inti=0;i<=ImageViewCount;i++){ UIImageView*imageInScroll=[[UIImageViewalloc]init]; imageInScroll.frame=CGRectMake(i*imageWidth,0,imageWidth,imageHeight); imageInScroll.image=[UIImageimageNamed:[NSStringstringWithFormat:@"img_%02d",i+1]]; [self.imageScrollViewaddSubview:imageInScroll]; } } //正滚动时执行 -(void)scrollViewDidScroll:(UIScrollView*)scrollView{ CGFloatoffX=self.imageScrollView.contentOffset.x;//(0,0)距离content内部左上顶点的x轴长度 NSLog(@"~~~~~~~%f^^^^^^%f",offX,self.imageScrollView.frame.size.width); intcurrentPageIndex=(offX+.5f*self.imageScrollView.frame.size.width)/self.imageScrollView.frame.size.width; self.imageViewPageControl.currentPage=currentPageIndex; } -(void)addScrollTimer{ self.timer=[NSTimertimerWithTimeInterval:2target:selfselector:@selector(rotatePic)userInfo:nilrepeats:YES]; [[NSRunLoopmainRunLoop]addTimer:self.timerforMode:NSRunLoopCommonModes]; } -(void)removeScrollTimer{ [self.timerinvalidate];//释放定时器 self.timer=nil; } //开始准备滚动时执行移除定时滚动操作 -(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{ NSLog(@"~~~scrollViewWillBeginDragging"); [selfremoveScrollTimer]; } //结束滚动后执行添加定时滚动操作 -(void)scrollViewDidEndDragging:(UIScrollView*)scrollViewwillDecelerate:(BOOL)decelerate{ NSLog(@"~~~scrollViewDidEndDragging"); [selfaddScrollTimer]; } @end
对UIScrollView的运用,以上代码中有详细注释,需注意2点:
1.注意设置contentSize属性。其中contentSize表示scroll内容尺寸大小
2.注意设置代理UIScrollViewDelegate,才可调用其中的方法
对于定时器NSTimer的运用需注意
1.在线程的loop中添加定时器
2.注意使用完成回收NSTimer
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。