滚动视图UIScrollView、UIPageControl

滚动视图 多个页面实现的原理 滚动视图位置不变 内容的位置发生改变
//1 。 分页查看图片
//2 。查看大图片
//3 。当内容过多 需要一个页面显示 (如注册 修改个人信息。。。)
//4 .当不希望用户感觉咱们的界面 是一张图片的时候 contentSize height+1 or width+1;
//contentSize height +1;

1、查看大图片

初始化一个滚动视图

 UIScrollView *myScrollView = [[UIScrollView alloc]initWithFrame:self.view.frame];
    myScrollView.backgroundColor = [UIColor brownColor];

设置滚动视图的contentSize 如果contentSize小于滚动视图的bounds就不会滚动
(设置视图可以滚动的范围)

myScrollView.contentSize = CGSizeMake(0, CGRectGetHeight(self.view.frame)+1000);

设置滚动视图的contentSize跟图片的尺寸一样(这个是设置视图的偏移量)

 myScrollView.contentSize = bgImage.size;

放大图片
1、需要用到 滚动视图的代理方法
2、设置放大和缩小视图的最大倍数和最小倍数
3、让滚动视图知到要方法哪一个视图

设置滚动视图的最小缩小倍数

myScrollView.minimumZoomScale = 0.5;

设置滚动视图的最大方法倍数

myScrollView.maximumZoomScale = 2;

使用滚动视图的代理方法 需要挂上代理

myScrollView.delegate = self;

pragma mark ——————scrollViewDelegate

//设置需要在滚动视图中要放大的视图
()导入的代理:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
//这里需要返回的是需要缩放的视图(一个图片视图等UIView*)
}

2、
设置屏蔽滚动条(Vertical垂直的,竖向的)

myScrollView.showsVerticalScrollIndicator = NO;

屏蔽滚动条(Horizontal水平的)

myScrollView.showsHorizontalScrollIndicator = NO;

设置是否 允许 点击 滚动 到最顶部)(初始位置)默认的是yes;

myScrollView.scrollsToTop =YES;

调用的方法:

//滚动到屏幕的最顶部 的时候调用
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{

}
//手指将要开始拖拽的时候(手指触碰到屏幕的时候)
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{

}
//已经开始滚动的时候调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
   }

分页查看图片

设置滚动视图分页效果

myScrollView.pagingEnabled =YES;

谁知滚动视图的样式

 myScrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;

设置滚动视图的偏移量 可以达到 设置滚动视图默认在第几屏的位置
还可以通过contentOffset来判断 滚动到第几屏

    myScrollView.contentOffset  = CGPointMake(CGRectGetWidth(self.view.frame), 0);

设置是否有反弹的效果(默认是Yes允许看到底图,并由反弹效果)(设置成NO的话就没有反弹效果)

myScrollView.bounces =YES;

UIPageControl页面控制:点点点
初始化

UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(self.view.frame)-40, CGRectGetWidth(self.view.frame), 20)];
    pageControl.tag = 119;

设置UIPageControl总共多少页

pageControl.numberOfPages = imageNames.count;

设置 指示 的 当前页面

pageControl.currentPage = 1;

当只有一个页面的时候 隐藏pageControl

pageControl.hidesForSinglePage = YES;

设置空心小圆点的颜色(轨道的颜色)

pageControl.pageIndicatorTintColor = [UIColor redColor];

设置当前的小圆点的颜色

pageControl.currentPageIndicatorTintColor = [UIColor blueColor];

在哪一个页面 通过偏移的X轴的位置除以屏幕的宽度得到当前的页数

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"%f",scrollView.contentOffset.x);
    // 在哪一个页面 通过偏移的X轴的位置除以屏幕的宽度得到当前的页数

}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    //得到一个当前的页数
    //滚动视图的偏移量 (持有的数据) 屏幕的宽(持有的数据)

    //滚动视图X的偏移量
    CGFloat x= scrollView.contentOffset.x;
    //屏幕的宽
    CGFloat w= CGRectGetWidth(self.view.frame);
    NSLog(@"%f",x);
    //偏移量除以宽 得到当前页面的页数
    NSInteger curPage = x/w;

    UIPageControl *pageControl = (UIPageControl *)[self.view viewWithTag:119];
    //设置pageControl的当前页面
    pageControl.currentPage =curPage;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ldl_csdn_ios

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值