一粱栖、效果展示(無限循環(huán))
二、原碼下載地址
SLAdsSliderView控件的原碼上傳在我的github上肌毅。
下載地址:https://github.com/SLconst/SLAdsSliderView
三瓦宜、如何使用
1.快速創(chuàng)建
- (void)viewDidLoad {
// 創(chuàng)建廣告滾動的控件
SLAdsSliderView *adsSliderView = [[SLAdsSliderView alloc] init];
adsSliderView.frame = CGRectMake(0, 0, 375 , 200);
adsSliderView.images = @[
[UIImage imageNamed:@"image0"],
[UIImage imageNamed:@"image1"],
[UIImage imageNamed:@"image2"],
[UIImage imageNamed:@"image3"],
[UIImage imageNamed:@"image4"]
];
[self.view addSubview:adsSliderView];
}
// 設(shè)置代理(可以用代理方法監(jiān)聽圖片的點(diǎn)擊)
adsSliderView.delegate = self;
2.設(shè)置圖片的滾動方向
// 設(shè)置圖片的滾動方向(默認(rèn)是水平方向滾動)
adsSliderView.direction = SLAdsSliderViewDirectionVertical;
3.監(jiān)聽是點(diǎn)擊了哪張圖片(代理協(xié)議:SLAdsSliderViewDelegate)
// 設(shè)置代理(可以用代理方法監(jiān)聽圖片的點(diǎn)擊)
adsSliderView.delegate = self;
// 實(shí)現(xiàn)代理方法
-(void)adsSliderView:(SLAdsSliderView *)adsSliderView didSelectItemAtIndex:(NSInteger)index
{
NSLog(@"%ld",(long)index);
}
4.關(guān)于pageControl
1.如果是想設(shè)置pageControl的某些樣式,我提供了pageControl屬性的接口
adsSliderView.pageControl.×××
2.如果是想改變pageControl的frame贺待,就繼承自我這個控件徽曲,在layoutSubviews中修改
- (void)layoutSubviews
{
[super layoutSubviews];
self.pageControl.frame = CGRectMake(0, 0, 100, 25);
}
四、如何實(shí)現(xiàn)無限滾動的思路
監(jiān)聽scrollview的滾動麸塞,每當(dāng)滾動結(jié)束后秃臣,同時(shí)完成以下兩步:
1.重置scrollView.contentOffset.x 等于 scrollview控件的寬度。
2.更改三個imageview上顯示的圖片哪工。
比如我設(shè)置了image0奥此、image1、image2雁比、image3稚虎、image4、image5偎捎、image6一共7張圖片蠢终。contentOffset如上圖。
左邊顯示:image1
中間顯示:image2
右邊顯示:image3
那么此時(shí)我們屏幕上顯示的是image2茴她,當(dāng)我們向右慢慢滾動時(shí) -->, 右邊顯示的image3會慢慢出現(xiàn)在我們眼前寻拂。
當(dāng)右邊顯示的image3即將完全顯示在眼前的時(shí)候,
立刻將scrollView.contentOffset.x置為scrollview的寬度丈牢,
并立馬改變?nèi)齻€圖片顯示的內(nèi)容祭钉。
左邊顯示:image2
中間顯示:image3
右邊顯示:image4
那么這個時(shí)候顯示在我們眼前的就是image3的圖片。
如此往復(fù)執(zhí)行下去己沛,就實(shí)現(xiàn)了無限滾動的效果朴皆。