UIScrollView滚动条的使用


// 初始化
    self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 440)];


scrollView 的一些设置

    // 设置滚动的范围
    self.scrollView.contentSize = CGSizeMake(280 * 4, 0);
   
    // 屏幕左上角距离坐标原点的偏移量  scrollView相对于滚动范围的坐标
    self.scrollView.contentOffset = CGPointMake(100, 100);

    // 可滚动的范围距离上左下右的距离
    self.scrollView.contentInset = UIEdgeInsetsMake(100, 50, 0, 0);

    // 边界是否回弹 默认YES
    self.scrollView.bounces = NO;
    
    // 滑动到顶部(点状态条的时候)
    self.scrollView.scrollsToTop = YES;

    // 是否允许用户滚动
    self.scrollView.scrollEnabled = NO;
    
    // 是否整屏翻动
    self.scrollView.pagingEnabled = YES;
    
    // 控制是否显示水平方向的滚动条
    // 指示条 实际上是加在scrollView上的两个imageView
    self.scrollView.showsHorizontalScrollIndicator = NO;
    
    // 控制是否显示垂直方向的滚动条
    self.scrollView.showsVerticalScrollIndicator = NO;

    // scrollView的协议
    // 1,签订协议
    // 2,指定代理
    self.scrollView.delegate = self;
    
    // scrollView放大缩小
    
    // 1,设置scrollView缩放的范围
    self.scrollView.maximumZoomScale = 2.0;   // 最大2倍
    self.scrollView.minimumZoomScale = 0.5;
    
    
    [self.view addSubview:self.scrollView];
    [_scrollView release];


scrollView的协议方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"%@", NSStringFromCGPoint(scrollView.contentOffset));
    NSLog(@"偏移量改变");
    
    // 偏移量改变的时候,计算当前的页数
    int pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width;
    
    // 通过偏移量改变pageControl的值
    self.pageControl.currentPage = pageNumber;
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"将要开始拖拽");
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@"已经结束拖拽");
    
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"将要开始减速");
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"已经减速停止");
}


UIPageController 页码

    self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(20, 20, 280, 50)];
    self.pageControl.backgroundColor = [UIColor blackColor];
    // 页数
    self.pageControl.numberOfPages = 4;
    // 设置小圆点的颜色
    self.pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
    // 未被选中点的颜色
    self.pageControl.pageIndicatorTintColor = [UIColor redColor];
    // 绑定一个方法
    [self.pageControl addTarget:self action:@selector(pageControlAction:) forControlEvents:UIControlEventValueChanged];
    
//    self.pageControl.currentPage = 4;
    
    [self.view addSubview:self.pageControl];
    [_pageControl release];


协议方法
- (void)pageControlAction:(UIPageControl *)pageControl
{
    NSLog(@"当前页:%d",
          pageControl.currentPage);
    
    // 计算scrollView的偏移量
    CGFloat xOffset = pageControl.currentPage * 280;
    CGPoint offset = CGPointMake(xOffset, 0);
//    [self.scrollView setContentOffset:offset animated:YES];                   
    self.scrollView.contentOffset = offset;
    
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    // 返回一个view 跟着scrollView缩放
    // 1,会把contentSize 设置为view的大小
    // 2,同时只能有一个view跟着scrollView缩放
    return [scrollView.subviews firstObject];
}








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值