iOS 添加滚动scrollView自动滚动广告页
2015-07-28 10:42
337 查看
#import "BannerCollectionCell.h"
#import "UIImageView+WebCache.h"
@implementation BannerCollectionCell
-(void)awakeFromNib
{
}
-(id)initWithFrame:(CGRect)frame
{
if (self == [superinitWithFrame:frame])
{
//定时器循环
[NSTimerscheduledTimerWithTimeInterval:5target:selfselector:@selector(runTimePage)userInfo:nilrepeats:YES];
}
return
self;
}
- (void)addImages:(NSArray *)imagesURLArray
{
for (UIView *subViewin
_scrollView.subviews)
{
[subViewremoveFromSuperview];
}
self.arrayCount = imagesURLArray.count;
_scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,
self.frame.size.width,self.frame.size.height)];
_scrollView.pagingEnabled =YES;
_scrollView.showsVerticalScrollIndicator =NO;
_scrollView.showsHorizontalScrollIndicator =NO;
_scrollView.delegate =self;
[selfaddSubview:_scrollView];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tapBannerImage:)];
[_scrollViewaddGestureRecognizer:tapGesture];
for (int i =0 ; i < imagesURLArray.count;
i++)
{
UIImageView *oneImageView = [[UIImageViewalloc]initWithFrame:CGRectMake((i+1)
*self.frame.size.width,0,
self.frame.size.width,self.frame.size.height)];
[oneImageView sd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:i]] ];
[_scrollViewaddSubview:oneImageView];
}
//取数组最后一张图片放在第0页
UIImageView *zeroImage = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,
self.frame.size.width,self.frame.size.height)];
[zeroImagesd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:imagesURLArray.count-1]]];
[_scrollViewaddSubview:zeroImage];
//取数组第一张图片放在最后1页
UIImageView *firstImage = [[UIImageViewalloc]initWithFrame:CGRectMake(self.frame.size.width*(imagesURLArray.count+1),0,
self.frame.size.width,self.frame.size.height)];
[firstImagesd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:0]]];
[_scrollViewaddSubview:firstImage];
_scrollView.contentSize =CGSizeMake(self.frame.size.width
* (imagesURLArray.count+2),self.frame.size.height);
[_scrollViewsetContentOffset:CGPointMake(0,0)];
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width,0,
self.frame.size.width,self.frame.size.height)animated:NO];
CGFloat pageControlWith =
30 *imagesURLArray.count;
CGFloat pageControlHeight =
30;
_bannerPageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(CGRectGetWidth(_scrollView.frame)/2
- pageControlWith/2,
CGRectGetHeight(_scrollView.frame) - pageControlHeight, pageControlWith, pageControlHeight)];
_bannerPageControl.currentPage =0;
_bannerPageControl.numberOfPages = imagesURLArray.count;
_bannerPageControl.currentPageIndicatorTintColor = [UIColorblackColor];
_bannerPageControl.pageIndicatorTintColor = [UIColordarkGrayColor];
[_bannerPageControladdTarget:selfaction:@selector(turnPage)forControlEvents:UIControlEventValueChanged];
[selfaddSubview:_bannerPageControl];
}
- (void)tapBannerImage:(UITapGestureRecognizer*)tap
{
NSInteger x =
_scrollView.contentOffset.x/SCREEN_WIDTH;
if ([self.tapDelegaterespondsToSelector:@selector(tapImageWithtag:)])
{
[self.tapDelegatetapImageWithtag:x];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
NSInteger index = (_scrollView.contentOffset.x/CGRectGetWidth(_scrollView.frame));
index -- ;
_bannerPageControl.currentPage = index;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSInteger index = (_scrollView.contentOffset.x/CGRectGetWidth(scrollView.frame));
if (index==0)
{
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width
* self.arrayCount,0,self.frame.size.width,self.frame.size.height)animated:NO];//
序号0最后1页
}
else
if (index==(self.arrayCount+1))
{
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width,0,self.frame.size.width,self.frame.size.height)animated:NO];//
最后+1,循环第1页
}
_bannerPageControl.currentPage = index;
[_bannerPageControlupdateCurrentPageDisplay];
}
// pagecontrol 选择器的方法
- (void)turnPage
{
NSInteger page =_bannerPageControl.currentPage;//
获取当前的page
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width*(page+1),0,self.frame.size.width,self.frame.size.height)animated:YES];//
触摸pagecontroller那个点点往后翻一页
+1
}
// 定时器
绑定的方法
- (void)runTimePage
{
NSLog(@"0000000");
NSInteger page =_bannerPageControl.currentPage;//
获取当前的page
page++;
page = page > (self.arrayCount -1) ?
0 : page ;
_bannerPageControl.currentPage = page;
[selfturnPage];
}
@end
#import "UIImageView+WebCache.h"
@implementation BannerCollectionCell
-(void)awakeFromNib
{
}
-(id)initWithFrame:(CGRect)frame
{
if (self == [superinitWithFrame:frame])
{
//定时器循环
[NSTimerscheduledTimerWithTimeInterval:5target:selfselector:@selector(runTimePage)userInfo:nilrepeats:YES];
}
return
self;
}
- (void)addImages:(NSArray *)imagesURLArray
{
for (UIView *subViewin
_scrollView.subviews)
{
[subViewremoveFromSuperview];
}
self.arrayCount = imagesURLArray.count;
_scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,
self.frame.size.width,self.frame.size.height)];
_scrollView.pagingEnabled =YES;
_scrollView.showsVerticalScrollIndicator =NO;
_scrollView.showsHorizontalScrollIndicator =NO;
_scrollView.delegate =self;
[selfaddSubview:_scrollView];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tapBannerImage:)];
[_scrollViewaddGestureRecognizer:tapGesture];
for (int i =0 ; i < imagesURLArray.count;
i++)
{
UIImageView *oneImageView = [[UIImageViewalloc]initWithFrame:CGRectMake((i+1)
*self.frame.size.width,0,
self.frame.size.width,self.frame.size.height)];
[oneImageView sd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:i]] ];
[_scrollViewaddSubview:oneImageView];
}
//取数组最后一张图片放在第0页
UIImageView *zeroImage = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,
self.frame.size.width,self.frame.size.height)];
[zeroImagesd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:imagesURLArray.count-1]]];
[_scrollViewaddSubview:zeroImage];
//取数组第一张图片放在最后1页
UIImageView *firstImage = [[UIImageViewalloc]initWithFrame:CGRectMake(self.frame.size.width*(imagesURLArray.count+1),0,
self.frame.size.width,self.frame.size.height)];
[firstImagesd_setImageWithURL:[NSURLURLWithString:[imagesURLArray
objectAtIndex:0]]];
[_scrollViewaddSubview:firstImage];
_scrollView.contentSize =CGSizeMake(self.frame.size.width
* (imagesURLArray.count+2),self.frame.size.height);
[_scrollViewsetContentOffset:CGPointMake(0,0)];
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width,0,
self.frame.size.width,self.frame.size.height)animated:NO];
CGFloat pageControlWith =
30 *imagesURLArray.count;
CGFloat pageControlHeight =
30;
_bannerPageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(CGRectGetWidth(_scrollView.frame)/2
- pageControlWith/2,
CGRectGetHeight(_scrollView.frame) - pageControlHeight, pageControlWith, pageControlHeight)];
_bannerPageControl.currentPage =0;
_bannerPageControl.numberOfPages = imagesURLArray.count;
_bannerPageControl.currentPageIndicatorTintColor = [UIColorblackColor];
_bannerPageControl.pageIndicatorTintColor = [UIColordarkGrayColor];
[_bannerPageControladdTarget:selfaction:@selector(turnPage)forControlEvents:UIControlEventValueChanged];
[selfaddSubview:_bannerPageControl];
}
- (void)tapBannerImage:(UITapGestureRecognizer*)tap
{
NSInteger x =
_scrollView.contentOffset.x/SCREEN_WIDTH;
if ([self.tapDelegaterespondsToSelector:@selector(tapImageWithtag:)])
{
[self.tapDelegatetapImageWithtag:x];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
NSInteger index = (_scrollView.contentOffset.x/CGRectGetWidth(_scrollView.frame));
index -- ;
_bannerPageControl.currentPage = index;
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSInteger index = (_scrollView.contentOffset.x/CGRectGetWidth(scrollView.frame));
if (index==0)
{
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width
* self.arrayCount,0,self.frame.size.width,self.frame.size.height)animated:NO];//
序号0最后1页
}
else
if (index==(self.arrayCount+1))
{
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width,0,self.frame.size.width,self.frame.size.height)animated:NO];//
最后+1,循环第1页
}
_bannerPageControl.currentPage = index;
[_bannerPageControlupdateCurrentPageDisplay];
}
// pagecontrol 选择器的方法
- (void)turnPage
{
NSInteger page =_bannerPageControl.currentPage;//
获取当前的page
[_scrollViewscrollRectToVisible:CGRectMake(self.frame.size.width*(page+1),0,self.frame.size.width,self.frame.size.height)animated:YES];//
触摸pagecontroller那个点点往后翻一页
+1
}
// 定时器
绑定的方法
- (void)runTimePage
{
NSLog(@"0000000");
NSInteger page =_bannerPageControl.currentPage;//
获取当前的page
page++;
page = page > (self.arrayCount -1) ?
0 : page ;
_bannerPageControl.currentPage = page;
[selfturnPage];
}
@end
相关文章推荐
- iOS Sprite Kit教程之场景的切换
- iOS开发-CoreMotion框架(加速计和陀螺仪)
- iOS Sprite Kit教程之场景的切换
- iOS Layer动画的KeyPath
- iOS工程中删除默认的并使用自建的ViewController后黑屏
- iOS中几种数据持久化方案
- iOS路径沙盒文件管理(转载)
- iOS开发图片控件(ImageView)绑定代码并显示一张图片
- iOS开发——keychain的使用
- 关于苹果开发者账号
- [iOS] 初探 iOS8 中的 Size Class
- nagios利用NRPE监控CPU、负载、磁盘IO
- 关于IOS编译出现找不到XXX变量名的错误解决
- 微试驾项目总结
- iOS:Button.titleLabel.text
- 快快快!27个提升效率的iOS开源库推荐
- registerForRemoteNotificationTypes: is not supported in iOS 8.0 and
- 自定义iOS7导航栏背景,标题和返回按钮文字颜色
- EarthWarrior3D游戏ios源码
- EarthWarrior3D游戏ios源码