iOS 添加滚动scrollView自动滚动广告页
来源:互联网 发布:室内效果图设计软件 编辑:程序博客网 时间:2024/05/12 17:05
#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:[imagesURLArrayobjectAtIndex:i]] ];
[_scrollViewaddSubview:oneImageView];
}
//取数组最后一张图片放在第0页
UIImageView *zeroImage = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,self.frame.size.width,self.frame.size.height)];
[zeroImagesd_setImageWithURL:[NSURLURLWithString:[imagesURLArrayobjectAtIndex: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:[imagesURLArrayobjectAtIndex: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页
}
elseif (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 添加滚动scrollView自动滚动广告页
- iOS scrollView循环自动滚动
- IOS实现自动循环滚动广告--ScrollView的优化和封装
- IOS实现自动循环滚动广告--ScrollView的优化和封装
- iOS中scrollview自动滚动的实现
- IOS系列——scrollview自动滚动
- iOS ScrollView自动滚动的代码
- iOS中scrollview自动滚动的实现
- iOS中scrollview自动滚动的实现
- iOS中scrollview自动滚动的实现
- scrollview 自动滚动
- 禁止ScrollView自动滚动
- ScrollView自动滚动实现
- 禁止ScrollView自动滚动
- 广告自动滚动
- 手动控制ScrollView滚动,ScrollView添加子布局,自动向上滚动
- Android添加垂直滚动ScrollView
- Android添加垂直滚动ScrollView
- 【POJ 1419】Graph Coloring
- poj 2528 Mayor's posters(线段树区间覆盖、离散化)
- 搭建Git本地服务器
- vim 粘贴时取消自动换行
- 二分查找算法笔记。
- iOS 添加滚动scrollView自动滚动广告页
- Spring MVC详解(二)Spring Web MVC是什么
- 分果子耗体力
- oracle imp/exp 导出以及导出空表解决方法
- PHP文件之上传
- 步步为营(十)常用数据结构(3)STL-Deque(双端队列)
- 写mapreduce程序实现kmeans算法
- GPIO模拟红外发射
- java面试题:i=i++和j=i++两句分别输出i=?,j=?