UI2_ScrollView&UIPageControl

//
//  ViewController.h
//  UI2_ScrollView&UIPageControl
//
//  Created by zhangxueming on 15/7/10.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UIScrollViewDelegate>


@end

 

//
//  ViewController.m
//  UI2_ScrollView&UIPageControl
//
//  Created by zhangxueming on 15/7/10.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "ViewController.h"

#define ClipsBundleWidth ((self.view.frame.size.width-300)/2)

@interface ViewController ()
{
    UIScrollView *_scrollView;
    UIPageControl *_pageControl;//页码
    NSInteger _currentIndex;//记录当前显示的页码
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(ClipsBundleWidth, 64, 300, 450)];
    _scrollView.contentSize = CGSizeMake(300*6, 450);
    _scrollView.pagingEnabled = YES;
    
    
    for (int i=0;  i<6; i++) {
        NSString *imageName = [NSString stringWithFormat:@"%d",i];
        NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(300*i, 0, 300, 450)];
        imageView.image = [UIImage imageWithContentsOfFile:path];
        [_scrollView addSubview:imageView];
    }
    
    _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(ClipsBundleWidth, 64+450, 300, 30)];
    _pageControl.numberOfPages = 6;
    _currentIndex = 0;
    _pageControl.currentPage = _currentIndex;
    _pageControl.backgroundColor = [UIColor blackColor];
    
    [self.view addSubview:_pageControl];
    
    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeSystem];
    backBtn.frame = CGRectMake(50, 64+450+30, (self.view.frame.size.width-100)/2, 30);
    [backBtn setTitle:@"back" forState:UIControlStateNormal];
    backBtn.titleLabel.font = [UIFont boldSystemFontOfSize:24];
    [backBtn addTarget:self action:@selector(backBtnClicked) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:backBtn];
    
    UIButton *forwardBtn = [UIButton buttonWithType:UIButtonTypeSystem];
    forwardBtn.frame = CGRectMake(50+(self.view.frame.size.width-100)/2, 64+450+30, (self.view.frame.size.width-100)/2, 30);
    [forwardBtn setTitle:@"forward" forState:UIControlStateNormal];
    forwardBtn.titleLabel.font = [UIFont boldSystemFontOfSize:24];
    [forwardBtn addTarget:self action:@selector(forwardBtnClicked) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:forwardBtn];
    
    //代理
    _scrollView.delegate = self;
    
    [self.view addSubview:_scrollView];
    
}

- (void)backBtnClicked
{
    _currentIndex--;
    if (_currentIndex>=0) {
        CGPoint point = CGPointMake(_currentIndex*300   , _scrollView.contentOffset.y);
        [_scrollView setContentOffset:point animated:YES];
        _pageControl.currentPage = _currentIndex;
    }
    else
    {
        _currentIndex = 5;
        CGPoint point = CGPointMake(_currentIndex*300   , _scrollView.contentOffset.y);
        [_scrollView setContentOffset:point animated:YES];
        _pageControl.currentPage = _currentIndex;
    }
}

- (void)forwardBtnClicked
{
    _currentIndex++;
    if (_currentIndex<=5) {
        CGPoint point = CGPointMake(_currentIndex*300, _scrollView.contentOffset.y);
        [_scrollView setContentOffset:point animated:YES];
        _pageControl.currentPage = _currentIndex;
    }
    else
    {
        _currentIndex = 5;
    }
}

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

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

 

posted @ 2015-07-11 16:45  sirzhang  阅读(144)  评论(0编辑  收藏  举报
AmazingCounters.com