1. 程式人生 > >ios開發之 -- 自動輪播圖創建

ios開發之 -- 自動輪播圖創建

ide targe info self spl enabled static repeat display

這裏是oc版本的,簡單記錄下:

具體代碼如下:

1,準備

#define FRAME [[UIScreen mainScreen] bounds]
#define WIDTH  FRAME.size.width
#define HEIGHT FRAME.size.height

2,具體實現

 //scrollview的添加
    _bigScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, WIDTH, HEIGHT)];
    _bigScrollView.showsHorizontalScrollIndicator 
= NO; _bigScrollView.contentSize = CGSizeMake(WIDTH *6, 0); _bigScrollView.pagingEnabled = YES; _bigScrollView.bounces = NO; _bigScrollView.delegate = self; [self.view addSubview:_bigScrollView]; //圖片內容的添加 for ( int i = 0; i<6; i++) { UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i *WIDTH, 0
, WIDTH, HEIGHT)]; imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]]; [_bigScrollView addSubview:imageView]; } //pagecontrol的創建 _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, WIDTH, 40)] ; _pageControl.center = CGPointMake(_bigScrollView.center.x, _bigScrollView.center.y); _pageControl.numberOfPages
= 6; _pageControl.currentPage = 0; _pageControl.pageIndicatorTintColor = [UIColor blueColor]; _pageControl.currentPageIndicatorTintColor =[UIColor redColor]; [self.view addSubview:_pageControl]; [_pageControl addTarget:self action:@selector(pageControllerClick) forControlEvents:UIControlEventValueChanged]; //定時器的創建 _timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

3,響應方法的實現

-(void)pageControllerClick
{
    [_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*320, 0) animated:YES];
}

//在scrollview開始手動滑動的時候
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [_timer setFireDate:[NSDate distantFuture]];
}

//在scrollview添加一個延遲方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    
    _pageControl.currentPage = _bigScrollView.contentOffset.x/WIDTH;
    [self performSelector:@selector(disPast) withObject:nil afterDelay:2];//延遲方法
    
}

//啟動定時器
-(void)disPast
{
    [_timer setFireDate:[NSDate distantPast]];
}

static int count=1;

//定時器的具體響應方法
-(void)onTimer
{
    _pageControl.currentPage+=count;
    if (_pageControl.currentPage==_pageControl.numberOfPages-1||_pageControl.currentPage==0)
    {
        count=-count;
    };
    [_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*WIDTH, 0) animated:YES];
    
}

效果圖就不加了,這裏僅做記錄用!

ios開發之 -- 自動輪播圖創建