相册翻页效果ScrollView+pageControl

87 篇文章 0 订阅

//设置scrollView

    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    

     self.scrollView = scrollView;

    [self addSubview:self.scrollView];

    

    

    //添加图片

    NSInteger count = 10;

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

        

        //把每张图片的frame设定一下

        CGRect frame = CGRectMake(self.frame.size.width * i, 0, self.frame.size.width, self.frame.size.height);

        

        //取到图片名字

        NSString *name = [NSString stringWithFormat:@"shuang_%d.jpg",i];

        

        //取到图片数据

        UIImage *image = [UIImage imageNamed:name];

        

        //把图片数据加载到图片视图上

        UIImageView *imageView = [[UIImageView alloc]initWithImage:image];

        self.imageView = imageView;

        

        //设置一下图片视图的frame

        imageView.frame = frame;

        

        //再把图片视图加载到要滚动的视图上

        

        [self.scrollView addSubview:imageView];

        

    }

    

    //最重要的一步,就是设置滚动的范围

    self.scrollView.contentSize = CGSizeMake(self.frame.size.width * count, self.frame.size.height);

    

    //设置是否允许整页滑动

    self.scrollView.pagingEnabled = YES;

   


    //添加小点点

    self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, self.frame.size.height - 50, self.frame.size.width, 40)];

    

    //小点点的个数,默认是0.

    self.pageControl.numberOfPages = count;

    

    [self addSubview:self.pageControl];



==================================================

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //小点点根据页面改变

    [self.rootView.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];

    

    

    //设置代理

    self.rootView.scrollView.delegate = self;

    

    

}

//实现代理方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    //FUNCTION 方法名

    //LINE 第几行

//    NSLog(@"%d,%s",__LINE__,__FUNCTION__);

    

    

}

//当视图完全停止的时候执行-减速结束

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    //self.rootView.scrollView 相当于 scrollView

    //得到偏移量

    CGPoint offset = scrollView.contentOffset;

    //计算当前页的索引值

    NSInteger index =(int)offset.x/(int)scrollView.frame.size.width ;

    //把索引值 赋给当前pageControl的当前小点点。

    self.rootView.pageControl.currentPage =index;

    

    NSLog(@"%d,%s",__LINE__,__FUNCTION__);

}



//事件处理

-(void)pageControlAction:(UIPageControl *)sender

{

    //currentPage当前点

    NSInteger pageIndex = sender.currentPage;

    //偏移量

    CGPoint offset = CGPointMake(self.rootView.scrollView.frame.size.width * pageIndex, 0);

    

    //僵硬的

//    self.rootView.scrollView.contentOffset = offset;

    

    //生动的

    [self.rootView.scrollView setContentOffset:offset animated:YES];

    

    [self.rootView.pageControl updateCurrentPageDisplay];

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值