[super viewDidLoad];
// Do any additional setup after loading the view.
[self addScroll];
[self addImageView];
[self loadImages];
[self addPageControl];
[self setDefaultImage];//加载默认图片
}
-(void)loadImages{
self.imagesAry=[[NSMutableArray alloc] init];
for (HomeADSlide_listModel *model in self.ary) {
NSString *img_url=model.img_url;
[self.imagesAry addObject:img_url];
}
}
-(void)addScroll{
self.scrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenSize.width, kScreenSize.height/3.79)];
[self.contentView addSubview:self.scrollView];
self.scrollView.delegate=self;//设置代理
self.scrollView.contentSize=CGSizeMake(3*kScreenSize.width, 0);//设置滚动范围
[self.scrollView setContentOffset:CGPointMake(kScreenSize.width, 0) animated:NO];//设置当前显示的位置为中间图片
self.scrollView.pagingEnabled=YES;
self.scrollView.showsHorizontalScrollIndicator=NO;
self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(update:) userInfo:nil repeats:YES];
// 将定时器添加到主线程
[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
- (void)update:(NSTimer *)timer{
if (_isDragging == YES) {
return ;
}
CGPoint offSet = self.scrollView.contentOffset;
offSet.x +=offSet.x;
[self.scrollView setContentOffset:offSet animated:YES];
if (offSet.x >= kScreenSize.width *2) {
offSet.x = kScreenSize.width;
}
}
-(void)addImageView{
CGRect frame=self.scrollView.frame;
self.leftImageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
self.centerImageView=[[UIImageView alloc] initWithFrame:CGRectMake(frame.size.width, 0, frame.size.width, frame.size.height)];
self.rightImageView=[[UIImageView alloc] initWithFrame:CGRectMake(2*frame.size.width, 0, frame.size.width, frame.size.height)];
self.leftImageView.userInteractionEnabled=YES;
self.centerImageView.userInteractionEnabled=YES;
self.rightImageView.userInteractionEnabled=YES;
UITapGestureRecognizer *leftTap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
UITapGestureRecognizer *centerTap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
UITapGestureRecognizer *rightTap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
[self.leftImageView addGestureRecognizer:leftTap];
[self.centerImageView addGestureRecognizer:centerTap];
[self.rightImageView addGestureRecognizer:rightTap];
[self.scrollView addSubview:self.leftImageView];
[self.scrollView addSubview:self.centerImageView];
[self.scrollView addSubview:self.rightImageView];
}
-(void)tap{//每张图片的点击事件
//self.currentImageIndex;
}
-(void)addPageControl{
self.pageControl=[[UIPageControl alloc] init];
//注意:此方法可以根据页数返回UIPageControl合适的大小
CGSize size=[self.pageControl sizeForNumberOfPages:self.ary.count];
self.pageControl.bounds=CGRectMake(0, 0, size.width, size.height);
self.pageControl.center=CGPointMake(kScreenSize.width-(kScreenSize.width/7.0), self.scrollView.frame.size.height-15);
//self.pageControl.center=CGPointMake(100,100);
self.pageControl.pageIndicatorTintColor=[UIColor darkGrayColor];
self.pageControl.currentPageIndicatorTintColor=kUIColorFromRGB(0xb2151c);//设置颜色
self.pageControl.numberOfPages=self.ary.count;//设置总页数
[self.superview addSubview:self.pageControl];
}
-(void)setDefaultImage{
//加载默认图片
[self.leftImageView sd_setImageWithURL:self.imagesAry[self.imageCount-1] placeholderImage:nil];
[self.centerImageView sd_setImageWithURL:self.imagesAry[0] placeholderImage:nil];
[self.rightImageView sd_setImageWithURL:self.imagesAry[1] placeholderImage:nil];
self.currentImageIndex=0;
//设置当前页
self.pageControl.currentPage=self.currentImageIndex;
}
#pragma mark - scrollViewDelegate
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
_isDragging = YES;
}
//滚动停止事件
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
// [self reloadImage];//重新加载图片
_isDragging = NO;
}
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
static int i =1; // 当前展示的是第几张图片
float offset = self.scrollView.contentOffset.x;
if (self.rightImageView.image == nil || self.leftImageView.image == nil) {
// 加载下一个视图
i == self.imageCount-1 ? 0 : i+1;
[self.rightImageView sd_setImageWithURL:[NSURL URLWithString:self.imagesAry[i]]];
// 加载上一个视图
i==0 ? self.imageCount-1 :i-1;
[_leftImageView sd_setImageWithURL:[NSURL URLWithString:self.imagesAry[i]]];
}
if(offset ==0){
_centerImageView.image = _leftImageView.image;
scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, 0);
_leftImageView.image = nil;
if (i == 0) {
i=self.imageCount-1;
} else{
i-=1;
}
}
if (offset == scrollView.bounds.size.width * 2) {
_centerImageView.image = _rightImageView.image;
scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, 0);
_rightImageView.image = nil;
if (i == self.imageCount-1) {
i=0;
}else{
i+=1 ;
}
}
if (i==0) {
self.currentImageIndex=self.imageCount-1;
} else {
self.currentImageIndex=i-1;
}
self.pageControl.currentPage=self.currentImageIndex;//设置分页
}