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的当前页
    }
  • 相关阅读:
    【2020省选Day1T1】LOJ3299 「联合省选 2020 A | B」冰火战士
    题解 CF1369 D,E,F Codeforces Round #652 (Div. 2)
    题解 LOJ3298 「BJOI2020」封印(SAM,数据结构)
    题解 nflsoj99 牛顿的烈焰激光剑(容斥,DP,数学)
    判断长度为3的等差数列(经典问题)
    树形图求和:一道经典矩阵知识题
    题解 LOJ2390 「JOISC 2017 Day 1」开荒者
    istio sidecar自动注入过程分析
    filebeat-kafka日志收集
    istio路由配置
  • 原文地址:https://www.cnblogs.com/leevaboo/p/2848890.html
Copyright © 2011-2022 走看看