美文网首页
无线轮播视图

无线轮播视图

作者: 傻人有傻福i | 来源:发表于2018-12-04 09:13 被阅读0次

#import "ViewController.h"

#define WIDTH self.view.frame.size.width

#define HEIGHT self.view.frame.size.height

@interface ViewController ()<UIScrollViewDelegate>

@property(nonatomic,strong) UIScrollView * scrollV;

@property(nonatomic,strong) UIPageControl * pageControl;

@property(nonatomic,strong) NSTimer * timer;

@property(nonatomic,strong) NSArray * imageArr;

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    self.imageArr=@[@"IMG_0003",@"IMG_0225",@"IMG_1057",@"IMG_1058",@"IMG_1060"];

    _scrollV = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, 380)];

    _scrollV.delegate =self;

    _scrollV.bounces=NO;

    [self.view addSubview:_scrollV];

    _scrollV.contentSize = CGSizeMake(WIDTH * _imageArr.count, HEIGHT);

    _scrollV.pagingEnabled = YES;

    //添加图片

    for(inti =0; i<_imageArr.count; i++) {

        //创建图片对象

        UIImageView* imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(i*WIDTH,0,WIDTH,380)];

        imageView.image= [UIImageimageNamed:self.imageArr[i]];

        [_scrollVaddSubview:imageView];

    }

    _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 350, WIDTH,20)];

    //_pageControl.backgroundColor = [UIColor redColor];

    _pageControl.alpha = 0.5;

    //设置圆点的个数

    _pageControl.numberOfPages = _imageArr.count;

    //添加事件

    [_pageControl addTarget:self action:@selector(valueChanage:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:_pageControl];

    //创建事件定时器

    [self startTimer];

}

//pageControl 点击事件,点击PageCt 改变滚动视图的偏移量

-(void)valueChanage:(UIPageControl*)pc

{

    NSIntegercurrentPage = pc.currentPage;

    //设置scrollV的偏移量

    [_scrollV setContentOffset:CGPointMake(currentPage * WIDTH,0) animated:YES];

}

//滚动视图停止滚动的时候

-(void)scrollViewDidScroll:(UIScrollView*)scrollView

{

    NSLog(@"滚动的时候会调用");

    _pageControl.currentPage = scrollView.contentOffset.x/WIDTH + 0.5;

}

//定时器方法,定时滚动图片

-(void)ChangeImage{

    if (self.pageControl.currentPage==_imageArr.count-1) {

        self.pageControl.currentPage=0;

        [self.scrollV setContentOffset:CGPointMake(0, 0)];

    }

    [_scrollV setContentOffset:CGPointMake((self.pageControl.currentPage+1)*WIDTH, 0) animated:YES];

}

//停止定时器

- (void)stopTimer

{

    [self.timer invalidate];

    self.timer=nil;

}

//创建定时器

- (void)startTimer {

    _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(ChangeImage)userInfo:nil repeats:YES];

    // 调整timer 的优先级

    NSRunLoop*mainLoop = [NSRunLoopmainRunLoop];

    [mainLoopaddTimer:_timer forMode:NSRunLoopCommonModes];

}

/**

 手指开始拖动的时候, 就让计时器停止

 */

- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView {

    [self stopTimer];

}

/**

 手指离开屏幕的时候, 就让计时器开始工作

 */

- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint*)targetContentOffset {

    [self startTimer];

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end

相关文章

  • 无线轮播视图

    #import "ViewController.h" #define WIDTH self.view.frame....

  • 轮播图的实现

    1、轮播图的协议 2、轮播视图:SMCarouselView 3、轮播视图的cell

  • swift UICollectionView 实现无限轮播图

    无线轮播图的实现方式有很多,这里介绍如何通过 UICollectionView 实现无线轮播图.效果图如下: 具体...

  • 普通奖品

    卡西欧小方块 轮播图 详情图 三只松鼠大礼包 轮播图 详情图 天猫精灵 轮播图 详情图 小米蓝牙无线耳机 轮播图 ...

  • 2018-05-03

    //引导页,轮播图,网格视图 @property(nonatomic,strong)UIImageView *im...

  • 通过UICollectionView来实现无限轮播

    基本上每个APP都会有无限轮播广告,在这里我通过UICollectionView来实现无线轮播因为通过UIColl...

  • 记_自己做过的轮播器

    添加视图的部分 添加在tableView的headView里 轮播部分 (UICollectionView) 在 ...

  • 项目的知识点内容

    1.轮播图框架------> FSPagerView 2.分页头视图 ------>DNSPageView 3.M...

  • swift第三方控件

    iOS开发:Swift实现的轮播图、无限循环视图控件CYCircularScrollView CycleScrol...

  • ViewPager无线轮播图

    本人第一次写文章,写的不好请多多包含。 效果图 两个都是无线轮播图,只是特效不一样我的电脑打不开虚拟机,制作不了g...

网友评论

      本文标题:无线轮播视图

      本文链接:https://www.haomeiwen.com/subject/kagpcqtx.html