首页 > 代码库 > scrollView实现无缝链接滚动视图
scrollView实现无缝链接滚动视图
源码下载
代码实现:
-(void)createView { self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0 + 64, 320, 230)]; self.scrollView.backgroundColor = [UIColor yellowColor]; // 锁定滑动方向 _scrollView.directionalLockEnabled = NO; _scrollView.contentSize = CGSizeMake(320 * (number + 2) , 240); // 弹跳效果 _scrollView.bounces = NO; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.pagingEnabled = YES; _scrollView.delegate = self; // scrollView 上面添加imageView for (int i = 0; i < number + 2; i ++) { self.testImageView = [[UIImageView alloc] initWithFrame:CGRectMake(320 * i + 3, 3 , 314 , 224)]; _testImageView.userInteractionEnabled = YES; _testImageView.backgroundColor = [UIColor redColor]; _testImageView.tag = 100 + i; [self.scrollView addSubview:_testImageView]; } //初始偏移量,显示第一张图片 _scrollView.contentOffset = CGPointMake(320, 0); [self.view addSubview:_scrollView]; //添加图片 [self addImage]; self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(90, 270, 250, 15)]; self.pageControl.numberOfPages = number; _pageControl.backgroundColor= [UIColor clearColor]; // 页码控制点颜色 _pageControl.pageIndicatorTintColor = [UIColor grayColor]; _pageControl.currentPageIndicatorTintColor = [UIColor cyanColor]; // pageControl 添加目标事件 [self.pageControl addTarget:self action:@selector(handlePageControlAction:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:self.pageControl]; [self addTimer]; self.YJFImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 235 + 64, 320, 568 - 240 - 64)]; self.YJFImageView.image = LOADIMAGE(@"背景图", @"jpg"); [self.view addSubview:_YJFImageView]; UILabel *YJFLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 60)]; YJFLabel.text = @"Email:summer2014mht@sina.com"; YJFLabel.textColor = [UIColor blackColor]; YJFLabel.textAlignment = NSTextAlignmentCenter; YJFLabel.font = [UIFont systemFontOfSize:16]; [self.YJFImageView addSubview:YJFLabel]; } -(void)addImage { for (int i = 0; i < number; i++) { UIImageView *picImageView = (UIImageView *)[self.view viewWithTag:101+i]; picImageView.image = LOADIMAGE(self.imageNameArray[i], @"jpg"); } UIImageView *picImageViewFirst = (UIImageView *)[self.scrollView viewWithTag:100 + number + 1]; picImageViewFirst.image = LOADIMAGE(self.imageNameArray[number - 1], @"jpg"); UIImageView *picImageViewLast = (UIImageView *)[self.scrollView viewWithTag:100 + number + 1]; picImageViewLast.image = LOADIMAGE(self.imageNameArray[0], @"jpg"); } // pageControl 点击相应事件 - (void)handlePageControlAction:(UIPageControl *)sender { NSInteger currentPage = _pageControl.currentPage; CGPoint offsetPoint = CGPointMake(currentPage * 320, 0); // 根据当前currentPage 滚动scrollView [self.scrollView setContentOffset:offsetPoint animated:YES]; } // 添加定时器, 实现轮播图 - (void)addTimer { [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(runTimer) userInfo:nil repeats:YES]; } // 定时器响应方法 - (void)runTimer { CGFloat x = _scrollView.contentOffset.x; [_scrollView setContentOffset:CGPointMake(x + 320, 0) animated:YES]; } #pragma mark - ScrollView Delegate //让pageControl随着视图变化 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (0 == scrollView.contentOffset.x) { [scrollView setContentOffset:CGPointMake(320 * number, 0) animated:NO]; } else if (((number + 1) * 320) == scrollView.contentOffset.x) { [scrollView setContentOffset:CGPointMake(320, 0) animated:NO]; } self.pageControl.currentPage = scrollView.contentOffset.x / 320 - 1; } -(void)customizedNavigationBar { self.navigationItem.title = @"轮播图demo"; }
scrollView实现无缝链接滚动视图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。