iOS UIPageControl简单实例

来源:互联网 发布:小区网络监控设计方案 编辑:程序博客网 时间:2024/06/04 18:34

iOS UIPageControl简单范例

关于自动 滚动代码 有待补充

实例中的图片自行添加

.h 文件代码

#import <UIKit/UIKit.h>@interface ViewController : UIViewController<UIScrollViewDelegate>{    UIScrollView *_scrollView;    NSMutableArray *slideImages;    UIPageControl *_page;}@end

.m 文件代码

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (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];        slideImages = [[NSMutableArray alloc]initWithObjects:@"1.png",@"2.png",@"3.png",@"4.png", nil];    UIImageView *imageView = [[UIImageView alloc]                              initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]];    imageView.frame = CGRectMake(0, 0, 320, 240);    [_scrollView addSubview:imageView];    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 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]];    imageView.frame = CGRectMake(320*5, 0, 320, 240);    [_scrollView addSubview:imageView];    _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];    // 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.    }@end


0 0
原创粉丝点击