UI - UIScrollView、UIPageControl

//    UIScrollView 滚动视图, 所有能滚动的控件的基类
    //1.滚动
    //2.缩放

//    一、滚动
    self.scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
    //1.设置滚动范围: width要大于scrollView本身的宽度才能横向滚动, 竖向滚动同理
    self.scrollView.contentSize = CGSizeMake(SCREEN_WIDTH, kScreenHeight);
    //2.设置按页滚动
    self.scrollView.pagingEnabled = YES;
    //3.设置滚动条显示
    self.scrollView.showsHorizontalScrollIndicator = NO;
    self.scrollView.showsVerticalScrollIndicator = NO;

    //4.设置回弹效果
    self.scrollView.bounces = YES;
    //5.设置是否能滚动
    self.scrollView.scrollEnabled = YES;
    //6.设置点状态栏回到顶部
    self.scrollView.scrollsToTop = YES;

    self.scrollView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:self.scrollView];

    //设置imageView
    for (int i = 0; i < 4; i++) {
        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH * i, 0, SCREEN_WIDTH, kScreenHeight)];
        imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i + 1]];
        [self.view addSubview:imageView];
    }

//   二、缩放
    //设置缩放比例
    self.scrollView.maximumZoomScale = 2;
    self.scrollView.minimumZoomScale = 0.5;


//    签订协议<UIScrollViewDelegate>
    //控制中心点, 缩放时仍在中间
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
        //移动到中间改变page
        if (scrollView.zoomScale < 1) {
            self.pageCon.currentPage = (scrollView.contentOffset.x + SCREEN_WIDTH / 2) / SCREEN_WIDTH;
        }

    }

    //指定scrollView上面的哪个子视图进行缩放
    -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
        return self.imageView;
        //    return [self.scrollView.subviews firstObject];

    }

    -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

        //设置图片的循环播放
        if (scrollView.contentOffset.x == 0) {
            scrollView.contentOffset = CGPointMake(SCREEN_WIDTH * 4, 0);
        }//小于0会崩溃
        if (scrollView.contentOffset.x == SCREEN_WIDTH * 5) {
            scrollView.contentOffset = CGPointMake(SCREEN_WIDTH, 0);
        }

        //在缩放结束后调整之前图片的缩放比例
        NSInteger currentImage = self.beforePoint / SCREEN_WIDTH + 1;
        if (self.beforePoint != scrollView.contentOffset.x) {
            ScrollView *scroll = (ScrollView *)[self.view viewWithTag:currentImage];
            scroll.zoomScale = 1;
        }
        self.beforePoint = scrollView.contentOffset.x;

    }

//    UIPageControl

    self.page = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 630, SCREEN_WIDTH, 40)];
    self.page.currentPageIndicatorTintColor = [UIColor redColor];
    self.page.pageIndicatorTintColor = [UIColor grayColor];
    [self.view addSubview:self.page];
    self.page.numberOfPages = 4;
    [self.page addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值