• 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的当前页
    }
  • 相关阅读:
    appium之adb常用命令
    测试基础之等价类
    selenium之CSS定位
    括号序列的最小代价
    Spark相对于MapReduce的优势
    Cache系统设计
    [京东2017实习生笔试] 终结者C
    [京东2017实习生笔试] 通过考试
    [hihoCoder] 1078. 线段树的区间修改
    [转载] 一步一步理解线段树
  • 原文地址:https://www.cnblogs.com/leevaboo/p/2848890.html
Copyright © 2020-2023  润新知