@property(weak,nonatomic)IBOutletUIScrollView*scrollView;
@property(weak,nonatomic)IBOutletUIPageControl*pageControl;
@property(nonatomic,strong)NSTimer*timer;
@end
@implementationViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//設置代理
self.scrollView.delegate=self;
//設置scrollView的內(nèi)容尺寸
self.scrollView.contentSize=CGSizeMake(self.scrollView.bounds.size.width* (count+2),self.scrollView.bounds.size.height);
//設置每張圖片的高度與寬度等于scrollView本身的frame框架
CGFloatimgW =self.scrollView.frame.size.width;
CGFloatimgH =self.scrollView.frame.size.height;
CGFloatimgY =0;
//設置圖片信息,共有5張圖片慷丽,可是在第一張圖片前面添加最后一張圖片吠卷,在最后一張圖片添加第一張圖片,起到欺騙視覺作用
UIImageView*firstImg = [[UIImageViewalloc]init];
firstImg.image= [UIImageimageNamed:@"img_05"];
firstImg.frame=CGRectMake(0, imgY, imgW, imgH);
[self.scrollViewaddSubview:firstImg];
UIImageView*lastImg = [[UIImageViewalloc]init];
lastImg.image= [UIImageimageNamed:@"img_01"];
lastImg.frame=CGRectMake((count+1) * imgW, imgY, imgW, imgH);
[self.scrollViewaddSubview:lastImg];
for(inti =0; i
UIImageView*img = [[UIImageViewalloc]init];
img.image= [UIImageimageNamed:[NSStringstringWithFormat:@"img_%02d",i+1]];
img.frame=CGRectMake((i+1) * imgW, imgY, imgW, imgH);
[self.scrollViewaddSubview:img];
}
//初始化scrollView的偏移值破镰,使其對準第一張圖片的位置
self.scrollView.contentOffset=CGPointMake(imgW, imgY);
self.scrollView.pagingEnabled=YES;
self.scrollView.showsHorizontalScrollIndicator=NO;
self.pageControl.currentPage=0;
//設置定時器,使其每一段時間執(zhí)行下一頁的功能
self.timer= [NSTimertimerWithTimeInterval:1.5target:selfselector:@selector(nextImg)userInfo:nilrepeats:YES];
//把定時器加入runloop中压储,實現(xiàn)時間片輪轉(zhuǎn)鲜漩,不會因為拖動其他的空間而導致輪播器不播放
NSRunLoop*runLoop = [NSRunLoopcurrentRunLoop];
[runLoopaddTimer:self.timerforMode:NSRunLoopCommonModes];
}
//根據(jù)圖片在scrollView中的偏移值改變scrollView的顯示內(nèi)容
-(void)nextImg{
CGFloatoffsetX =self.scrollView.contentOffset.x;
intindex = offsetX /self.scrollView.frame.size.width;
index ++;
[self.scrollViewsetContentOffset:CGPointMake(index *self.scrollView.frame.size.width,0)animated:YES];
}
//代理方法,scrollView滾動的時候會自動執(zhí)行這個方法
-(void)scrollViewDidScroll:(UIScrollView*)scrollView{
CGFloatwidth =self.scrollView.frame.size.width;
CGFloatoffsetX =self.scrollView.contentOffset.x;
intindex = (offsetX + width *0.5) / width;
self.pageControl.currentPage= index -1;
}
//scrollView被拖動的時候調(diào)用這個方法集惋,關(guān)閉定時器孕似,防止定時器在后臺繼續(xù)運行導致放手的時候圖片加速跑
-(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{
[self.timerinvalidate];
self.timer=nil;
}
//scrollView停止拖動的時候重新啟動定時器并加入runloop中
-(void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate{
self.timer= [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(nextImg)userInfo:nilrepeats:YES];
NSRunLoop*runloop = [NSRunLoopmainRunLoop];
[runloopaddTimer:self.timerforMode:NSRunLoopCommonModes];
}
//每當?shù)谝豁撓蚯胺阶詈笠豁摚蛘咦詈笠豁撓蚝蠓诺降谝豁摴涡蹋趫D片穩(wěn)定下來的一瞬間喉祭,把圖片的位置換到真實的位置养渴,起到圖片的輪播作用。(注:只用設置翻滾的時候為animation這個方法才會執(zhí)行)
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView*)scrollView{
CGFloatwidth =self.scrollView.frame.size.width;
CGFloatoffsetX =self.scrollView.contentOffset.x;
intindex = (offsetX + width *0.5)/width;
if(index ==count+1) {
[self.scrollViewsetContentOffset:CGPointMake(width,0)animated:NO];
}elseif(index ==0){
[self.scrollViewsetContentOffset:CGPointMake(count* width,0)animated:NO];
}
}
//scrollView滾動降速的時候調(diào)用(注:只用設置翻滾的時候為animation這個方法才會執(zhí)行)
-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{
[selfscrollViewDidEndScrollingAnimation:self.scrollView];
}
加入定時器 輪播圖
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門坊饶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泄伪,“玉大人,你說我怎么就攤上這事匿级◇危” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵痘绎,是天一觀的道長津函。 經(jīng)常有香客問我,道長孤页,這世上最難降的妖魔是什么尔苦? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮行施,結(jié)果婚禮上允坚,老公的妹妹穿的比我還像新娘。我一直安慰自己蛾号,他們只是感情好稠项,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲜结,像睡著了一般展运。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上精刷,一...
- 文/蒼蘭香墨 我猛地睜開眼迷殿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咖杂?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布权谁,位于F島的核電站,受9級特大地震影響憋沿,放射性物質(zhì)發(fā)生泄漏旺芽。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一辐啄、第九天 我趴在偏房一處隱蔽的房頂上張望采章。 院中可真熱鬧,春花似錦壶辜、人聲如沸悯舟。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽图谷。三九已至,卻和暖如春阱洪,著一層夾襖步出監(jiān)牢的瞬間便贵,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 計時器函數(shù) setInterval() 定時器函數(shù) setTimeout() setTimeout()捻脖;類似于...
- 因為項目還在更改,需求還沒定下來所以有時間做點小小的研究 .. 今天把之前下拉刷新的的圖片換成了輪播圖 ~ 所以今...
- 什么是Facade模式 隨著系統(tǒng)越來越復雜,我們需要把細節(jié)隱藏起來中鼠,給客戶端提供一個統(tǒng)一的接口可婶。在這種需求下fac...
- 內(nèi)容概要重點: 1. 未來非常稀缺且重要的6種能力:設計感(解決問題的新的方式)、共情能力(換位思考的能力)援雇、講故...