iOS 添加滚动scrollView自动滚动广告页

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值