zoukankan      html  css  js  c++  java
  • iOS- UIScrollView、UIPageControl分页浏览图片

    1.先介绍下UIScrollView的常见属性                    

    @property(nonatomic) CGPoint contentOffset; // 记录UIScrollView滚动的位置
    @property(nonatomic) CGSize contentSize; // 内容尺寸(能滚动的范围)
    @property(nonatomic) UIEdgeInsets contentInset; // 额外增加的滚动区域(在上下左右4个边缘)
    @property(nonatomic,assign) id<UIScrollViewDelegate> delegate; // 代理对象
    @property(nonatomic) BOOL bounces; // 是否有弹簧效果
    @property(nonatomic) BOOL showsHorizontalScrollIndicator; // 是否显示水平滚动条
    @property(nonatomic) BOOL showsVerticalScrollIndicator; // 是否显示垂直滚动条

    2.分页浏览的实现                             

    2.1.把需要显示的图片设置进UIScrollView                            

     1     CGFloat w = self.view.frame.size.width;
     2     CGFloat h = self.view.frame.size.height;
     3     for (int i = 0; i< kCount; i++) {
     4         UIImageView *imageView = [[UIImageView alloc] init];
     5         
     6         // 1.设置frame
     7         imageView.frame = CGRectMake(i * w, 0, w, h);
     8         
     9         // 2.设置图片
    10         NSString *imgName = [NSString stringWithFormat:@"0%d.jpg", i + 1];
    11         imageView.image = [UIImage imageNamed:imgName];
    12         
    13         [_scrollView addSubview:imageView];

    2.2.设置UIScrollView的相关属性                            


    属性在文章的开头有介绍

     // height == 0 代表 禁止垂直方向滚动
        _scrollView.contentSize = CGSizeMake(kCount * w, 0);
        _scrollView.showsHorizontalScrollIndicator = NO;
        _scrollView.pagingEnabled = YES;
        _scrollView.delegate = self;

    2.3.设置UIPageControl的相关属性,计算页码                            

     1     UIPageControl *pageControl = [[UIPageControl alloc] init];
     2     pageControl.center = CGPointMake(w * 0.5, h - 20);
     3     pageControl.bounds = CGRectMake(0, 0, 150, 50);
     4     pageControl.numberOfPages = kCount; // 一共显示多少个圆点(多少页)
     5     // 设置非选中页的圆点颜色
     6     pageControl.pageIndicatorTintColor = [UIColor redColor];
     7     // 设置选中页的圆点颜色
     8     pageControl.currentPageIndicatorTintColor = [UIColor blueColor];
     9     
    10     // 禁止默认的点击功能
    11     pageControl.enabled = NO;
    12     
    13     [self.view addSubview:pageControl];
    14     _pageControl = pageControl;

    2.4.滚动时切换页码                                          

    #pragma mark - UIScrollView的代理方法
    #pragma mark 当scrollView正在滚动的时候调用
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        int page = scrollView.contentOffset.x / scrollView.frame.size.width;
    //    NSLog(@"%d", page);
        
        // 设置页码
        _pageControl.currentPage = page;
    }

    作者: 清澈Saup
    出处: http://www.cnblogs.com/qingche/
    本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    PAT 1006 Sign In and Sign Out
    PAT 1004. Counting Leaves
    JavaEE开发环境安装
    NoSql数据库探讨
    maven的配置
    VMWARE 下使用 32位 Ubuntu Linux ,不能给它分配超过3.5G 内存?
    XCODE 4.3 WITH NO GCC?
    在苹果虚拟机上跑 ROR —— Ruby on Rails On Vmware OSX 10.7.3
    推荐一首让人疯狂的好歌《Pumped Up Kicks》。好吧,顺便测下博客园可以写点无关技术的帖子吗?
    RUBY元编程学习之”编写你的第一种领域专属语言“
  • 原文地址:https://www.cnblogs.com/qingche/p/3551362.html
Copyright © 2011-2022 走看看