• ScrollView图片分页显示-简单


    用到的控件:

    1>UIScrollView:宽度和图片的宽度一样,因为分页的代码就一句

    // 设置分页,这个分页的原理实际上是按照ScrollView的宽进行分页的,这里的图片的宽由于和ScrollView的宽式一样的所以刚好分页显示图片了

        _scrollView.pagingEnabled = YES;

    2>UIImageView:用来放图片的

    3>UIPageControl,页码显示控件

    =======================

    关键部分:监听ScrollView的滚动,来告诉页码显;监听的方法:

    scrollViewDidScroll  // 实现协议里的监听滚动的方法,这个方法是ScrollView在滚动时,会被调用

    全部代码:

    #import "CXBViewController.h"
    
    #define pCount 5 // 分页显示的图片张数,或者是页数
    
    @interface CXBViewController () <UIScrollViewDelegate>
    {
        UIPageControl *_pageControl;
    }
    
    @end
    
    @implementation CXBViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        // 为scrollView添加图片
        // 设置图片的宽和高
        CGFloat w = self.view.frame.size.width;
        CGFloat h = self.scrollView.bounds.size.height;
        for (int i = 0; i < pCount; i++) {
            UIImageView *imageView = [[UIImageView alloc] init];
            // 定义图片名,通过循环把所有的图片添加到scrollView中
            NSString *imageName = [NSString stringWithFormat:@"img_%02d", i + 1 ];
            imageView.frame = CGRectMake(i*w, 0, w, h);
            imageView.image = [UIImage imageNamed:imageName];
            [self.scrollView addSubview:imageView];
        }
    
        // contentSize的y值为0表示在垂直方向上不做滚动
        self.scrollView.contentSize = CGSizeMake(pCount * w, 0);
        // 禁用滚动条,只设置水平方向的滚动条即可,竖直方向的滚动范围是0,所以没必要设置
        self.scrollView.showsHorizontalScrollIndicator = NO;
        
        // 设置分页,这个分页的原理实际上是按照ScrollView的大小分页的,这里的图片的宽由于和ScrollView的宽式一样的所以刚好分页显示图片了
        _scrollView.pagingEnabled = YES;
        
        // 添加分页表示符
        UIPageControl *pageControl = [[UIPageControl alloc] init];
        // 让它居中,就设置center属性
        pageControl.center = CGPointMake(w * 0.5, h - 20);
        pageControl.bounds = CGRectMake(0, 0, 120, 20);
        // 设置显示的点的个数
        pageControl.numberOfPages = pCount;
        // 禁止点击
        pageControl.enabled = NO;
        pageControl.pageIndicatorTintColor = [UIColor grayColor];
        pageControl.currentPageIndicatorTintColor = [UIColor brownColor];
        _pageControl = pageControl;
        // 这里添加到view中,不能添加到ScrollView中,否则会随着滚动而消失
        [self.view addSubview:pageControl];
        
        
        // 监听ScrollView的滚动,来告诉页码显示
        // 设置代理
        _scrollView.delegate = self;
    }
    
    // 实现协议里的监听滚动的方法,这个方法是ScrollView在滚动时,会被调用
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        // 用contentOffset来计算当前的页码
        int pageCount = self.scrollView.contentOffset.x/self.scrollView.bounds.size.width;
        _pageControl.currentPage = pageCount;
        
    }
    
    @end

    这个简单的图片分页适合图片较少,在10张以内的;日后的笔记中会进行优化,只用两个UIImageView来循环显示图片即可;

  • 相关阅读:
    国内开源缺陷管理系统PPM Bug v1.0发布
    LUA、python、注册表和正则表达式简述
    精通Windows API 线程同步控制源码
    博士生传给硕士生的经验 (转载)这实在是一篇少走许多学习弯路的好文章
    得到任务管理器的正在执行的程序列表 系统的临时路径及临时文件绝对路径
    创建设一个开机自动运行的计划任务,并且命名和当前登陆用户名相关
    刚踏实入IT行业几个月感悟
    给IT新人的15点建议:苦逼程序员的辛酸反省与总结
    char转换成WCHAR简单方法
    字符操作、文件操作和CMD命令的使用——c/c++编
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3763978.html
Copyright © 2020-2023  润新知