zoukankan      html  css  js  c++  java
  • UIPageController与UIScrollView的联合使用

    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
            _backImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height - 20)];
            _backImage.userInteractionEnabled = YES;
            _backImage.image = [UIImage imageNamed:@"教师讲题-互动.png"];
            [self addSubview:_backImage];
            
            _statisScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(7, 9, frame.size.width - 23, frame.size.height - 45)];
            _statisScrollView.contentSize = CGSizeMake(_statisScrollView.frame.size.width * 2, _statisScrollView.frame.size.height);
            _statisScrollView.backgroundColor = [UIColor clearColor];
            _statisScrollView.pagingEnabled = YES;
            _statisScrollView.showsHorizontalScrollIndicator = NO;
            _statisScrollView.delegate = self;
            [self addSubview:_statisScrollView];
            [_statisScrollView release];
            
            _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, frame.size.height - 40, frame.size.width, 20)];
            _pageControl.backgroundColor = [UIColor clearColor];
            _pageControl.currentPage = 0;
            _pageControl.numberOfPages = 2;
            [_pageControl addTarget:self action:@selector(getChangePage:) forControlEvents:UIControlEventValueChanged];
            [self addSubview:_pageControl];
            [_pageControl release];
           
        }
        return self;
    }
    
    - (void)getChangePage:(UIPageControl *)pageControl
    {
        int page = pageControl.currentPage;
        
        CGRect frame = _statisScrollView.frame;
        frame.origin.x = frame.size.width * page;//根据页数算要显示的第几页在scrollView的初始坐标
        frame.origin.y = 0;
        [_statisScrollView scrollRectToVisible:frame animated:YES];//根据坐标显示第几页
    }
    #pragma mark UIScrollViewDelagete
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        CGFloat pageWidth = scrollView.frame.size.width;
        int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;//根据坐标算页数
        _pageControl.currentPage = page;//页数赋值给pageControl的当前页
    }
  • 相关阅读:
    Java8 Optional使用方式
    ABAC框架-casbin
    Java数据脱敏(手机号|邮箱号|身份证号|银行卡号)
    使用OpenOffice将office文件转为pdf
    在线审批流设计
    Java 将带逗号的字符串转为List
    Java8 lambda常用操作
    Markdown合并单元格
    本博客已搬迁至rcst.xyz
    涂色(题解)
  • 原文地址:https://www.cnblogs.com/leevaboo/p/2848890.html
Copyright © 2011-2022 走看看