IOS开发之UIScrollView与UIPageControl的用法


@interface RootViewController : UIViewController<UIScrollViewDelegate>

{

    UIScrollView *_scrollView;

    NSMutableArray *slideImages;

    UIPageControl *_page;

}


@end


#import "RootViewController.h"


@interface RootViewController ()


@end


@implementation RootViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    return self;

}


- (void)viewDidLoad

{

    [super viewDidLoad];

    

    _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, 320, 240)];

    _scrollView.bounces = NO;

    _scrollView.pagingEnabled = YES;

    _scrollView.delegate = self;

    _scrollView.contentOffset = CGPointMake(320, 0);

    _scrollView.contentSize = CGSizeMake(1920,240);

    _scrollView.showsVerticalScrollIndicator =NO;

    _scrollView.showsHorizontalScrollIndicator = NO;

    _scrollView.userInteractionEnabled = YES;

    [self.view addSubview:_scrollView];

    [_scrollView release];

    

    slideImages = [[NSMutableArray alloc]initWithObjects:@"1.jpeg",@"2.jpg",@"3.jpeg",@"4.jpeg", nil];

    

    UIImageView *imageView = [[UIImageView alloc]

                              initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]];

    imageView.frame = CGRectMake(0, 0, 320, 240);

    [_scrollView addSubview:imageView];

    [imageView release];

    

    for (int i = 0;i<[slideImages count];i++) {

        //loop this bit

        UIImageView *imageView = [[UIImageView alloc]

                                  initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:i]]];

        imageView.frame = CGRectMake(320*i+320, 0, 320, 240);

        imageView.userInteractionEnabled = YES;

        [_scrollView addSubview:imageView];

        [imageView release];

    }

    

    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]];

    imageView.frame = CGRectMake(320*5, 0, 320, 240);

    [_scrollView addSubview:imageView];

    

    [imageView release];

    

    

    _page = [[UIPageControl alloc]initWithFrame:CGRectMake(240, 230, 70, 30)];

    _page.numberOfPages = 4;

    _page.currentPage = 0;

    

//    _page.backgroundColor = [UIColor grayColor];

    [_page addTarget:self action:@selector(pageAction) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:_page];

    [_page release];

// Do any additional setup after loading the view.

}



- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    int currentPage = (_scrollView.contentOffset.x - _scrollView.frame.size.width

                             / ([slideImages count]+2)) / _scrollView.frame.size.width + 1;

    NSLog(@"%d",currentPage);

    if (currentPage==0) {

        [_scrollView scrollRectToVisible:CGRectMake(320*4, 0, 320, 240) animated:NO];

    }

    else if (currentPage==([slideImages count]+1)) {

            //如果是最后+1,也就是要开始循环的第一个

            [_scrollView scrollRectToVisible:CGRectMake(320, 0, 320, 240) animated:NO];

        }

}


- (void)scrollViewDidScroll:(UIScrollView *)sender

{

    int page = _scrollView.contentOffset.x/320-1;

    _page.currentPage = page;

}


-(void)pageAction

{

    int page = _page.currentPage;

    [_scrollView setContentOffset:CGPointMake(320 * (page+1), 0)];

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


- (void)dealloc {

    

    [slideImages release];

    [super dealloc];

}


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值