照片浏览滑动效果UIScrollView和UIPageControl组合

- (void)changePage:(UIPageControl *)pageControl{

    [_scrollView setContentOffset:CGPointMake(pageControl.currentPage*ScreenWidth, 0) animated:YES];
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
 
    _pageControl.currentPage = _scrollView.contentOffset.x/320;
}

上面是主要的代码。

初始化uiscrolview 和 pagecontrol

_mPictureArray = [NSMutableArray array];
    _scrollView = [[UIScrollView alloc] init];
    _scrollView.delegate = self;
    _scrollView.backgroundColor = [UIColor whiteColor];
    _scrollView.contentSize = CGSizeMake(ScreenWidth*3,0);
    _scrollView.pagingEnabled = YES;
    
    [self.view addSubview:_scrollView];
    [_scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(0, 0, 0, 0));
    }];
    
    for(int i=0;i<3;i++){
     
        UIImageView *contentImageView = [[UIImageView alloc] init];
        contentImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];
        [_scrollView addSubview:contentImageView];
        [contentImageView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.with.equalTo(self.view);
            make.height.with.equalTo(self.view);
            make.left.equalTo(_scrollView).with.offset(ScreenWidth*i);
        }];
        [_mPictureArray addObject:contentImageView];
    }
    
    _pageControl = [[UIPageControl alloc] init];
    _pageControl.numberOfPages = 3;
    _pageControl.currentPage = 0;
    _pageControl.pageIndicatorTintColor = [UIColor redColor];
    [_pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:_pageControl];
    [_pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.equalTo(self.view);
        make.centerX.equalTo(self.view);
        make.top.equalTo(self.view).with.offset(ScreenHeight-50);
        make.height.offset(30);
    }];
原文地址:https://www.cnblogs.com/machealking/p/5116736.html