UIScrollView和UIPageControl结合

 //创建一个滚动视图
    UIScrollView *scrollView  = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds ];
    [self addSubview:scrollView];
    [self addSubview:scrollView];
     self.scrollView = scrollView;
    
    scrollView.backgroundColor = [UIColor cyanColor];
    
    //创建多个图片
    int count = 3;
    for (int i = 0; i < count; i++) {
        
        //设置每个imageView的frame
        CGRect frame= CGRectMake(self.frame.size.width*i,0,self.frame.size.width, self.frame.size.height);
    
        //创建一个图片对象
        NSString *name = [NSString stringWithFormat:@"shuang_%d.jpg",i];
        UIImage *image = [UIImage imageNamed:name];
       
        //创建一个图片视图,放置图片对象
         UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
        //设置图片视图的frame
        imageView.frame = frame;
        
        //将多个图片对象添加到图片视图上
        [_scrollView addSubview:imageView];
    }
    
    //设置整屏翻页
    _scrollView.pagingEnabled = YES;
    
    //(一定要设置)设置内容大小
    _scrollView.contentSize = CGSizeMake(self.frame.size.width*count, self.frame.size.height);
    
    
    //添加上小点点
    self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, self.frame.size.height-40, self.frame.size.width,40)];
    [self addSubview:_pageControl];
    
    //设置点点的个数
    _pageControl.numberOfPages = count;
    _pageControl.backgroundColor = [UIColor blueColor];
    



//给小点点定义点击事件
-(void)pageControlAction:(UIPageControl *)sender{
    
    //可以通过currentPage获取当前第几个点
    NSLog(@"%ld",sender.currentPage);
    
    //计算出偏移量scrollView.frame.size.width*sender.currentPage
    CGPoint currentOffset = CGPointMake(self.rootView.scrollView.frame.size.width*sender.currentPage, 0);
    
    //self.rootView.scrollView.contentOffset = currentOffset;
    
    //将偏移量赋值给scrollView.contentOffset = offset
    [self.rootView.scrollView setContentOffset:currentOffset animated:YES];
}

//滚动过程中
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
   // NSLog(@"%d,%s",__LINE__,__FUNCTION__);
    NSLog(@"开始滚动");
}

//开始拖动
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
   // NSLog(@"%d,%s",__LINE__,__FUNCTION__);
    NSLog(@"开始拖动");
}

//结束拖动时执行
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    NSLog(@"%d,%s",__LINE__,__FUNCTION__);
}


//开始减速
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    NSLog(@"%d,%s",__LINE__,__FUNCTION__);
    NSLog(@"开始减速");
}



//结束:当视图完全停止的时候执行(减速结束)
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    NSLog(@"%d,%s",__LINE__,__FUNCTION__);
    NSLog(@"结束");
    
    //获得当前的偏移量
    CGPoint offset = scrollView.contentOffset;
    
    //使用偏移量/scrollView的宽度,得到当前的页数的下标
    self.rootView.pageControl.currentPage = offset.x/self.rootView.frame.size.width;
    
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值