//初始化当前视图 _currentImageView = [[UIImageView alloc] init]; [_currentImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:0]]]; _currentImageView.frame = CGRectMake(myScroller.frame.size.width, 0, myScroller.frame.size.width,180); // _currentImageView.contentMode = UIViewContentModeScaleAspectFill; [myScroller addSubview:_currentImageView]; _nextImageView = [[UIImageView alloc] init]; [_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:1]]]; _nextImageView.frame = CGRectMake(myScroller.frame.size.width * 2, 0, myScroller.frame.size.width,180); // _nextImageView.contentMode = UIViewContentModeScaleAspectFill; [myScroller addSubview:_nextImageView]; //初始化上一个视图 _previousView = [[UIImageView alloc] init]; [_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:3]]]; _previousView.frame = CGRectMake(0, 0,myScroller.frame.size.width,180); // _previousView.contentMode = UIViewContentModeScaleAspectFill; [myScroller addSubview:_previousView]; } { SMPageControl *pageControl = [[SMPageControl alloc] init]; [pageControl setFrame:CGRectMake(0, myScroller.frame.size.height+64 - 10.0f,myScroller.frame.size.width,10.0f)]; [pageControl setNumberOfPages:4]; [pageControl setBackgroundColor:[UIColor clearColor]]; [pageControl setCurrentPage:0]; [pageControl setCurrentPageIndicatorTintColor:[UIColor lightGrayColor]]; [pageControl setPageIndicatorTintColor:[UIColor grayColor]]; myPageControl=pageControl; [self.view addSubview:myPageControl]; } if (![myTimer isValid]) { myTimer=[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(updateAuto) userInfo:nil repeats:YES]; } #pragma mark 时钟动画调用方法 - (void)updateAuto { if (_isDraging) { return; } CGPoint offset = myScroller.contentOffset; offset.x += self.view.frame.size.width; if (offset.x > self.view.frame.size.width*2) { offset.x = self.view.frame.size.width; } [myScroller setContentOffset:offset animated:YES]; } #pragma mark - 代理方法 #pragma mark 准备开始拖动 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { _isDraging = YES; } #pragma mark 视图停止滚动 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { _isDraging = NO; } #pragma mark 已经拖动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ static int i = 0;//当前展示的是第几张图片 float offset = scrollView.contentOffset.x; if (_nextImageView.image == nil || _previousView.image == nil) { //加载下一个视图 [_nextImageView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == kCount ? 0: i+1]]]; //加载上一个视图 [_previousView setImageWithURL:[NSURL URLWithString:[array_pic objectAtIndex:i == 0 ? kCount : i - 1]]]; } if (offset == 0) { _currentImageView.image = _previousView.image; scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, 0); _previousView.image = nil; if (i == 0) { i = kCount; }else{ i -= 1; } } if (offset == scrollView.bounds.size.width * 2) { _currentImageView.image = _nextImageView.image; scrollView.contentOffset = CGPointMake(scrollView.bounds.size.width, 0); _nextImageView.image = nil; if (i == kCount) { i = 0; //如果当前图片索引在最后一个,则重置为0,否则+1 }else{ i += 1; } } [myPageControl setCurrentPage:i]; }
时间: 2024-11-05 14:58:56