UIScrollView

- (void)viewDidLoad {
    
    [super viewDidLoad];
    
    // 滚动视图  UIScrollView - > UIView
    UIScrollView *scrollView =  [[UIScrollView alloc] init];
    
    // 精确计算
    scrollView.frame = CGRectMake(10, 64, 300, 406);
    scrollView.backgroundColor = [UIColor lightGrayColor];
    scrollView.tag = 1001;
    
    [self.view addSubview:scrollView];
    
    // 默认给添加png 其他不会的格式不会被默认添加上,而且imageNamed是从缓存中加载,运行速度快,但是占内存
    UIImage *image = [UIImage imageNamed:@"bigGreen.jpg"];
    // UIImageView是UIImage的一个载体
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.tag = 101;
    
    UIView *zoomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    zoomView.tag = 102;
    zoomView.backgroundColor = [UIColor lightGrayColor];

    
    // 和原图一样大
    imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
    [scrollView addSubview:imageView];
        [scrollView addSubview:zoomView];
    
    // 滚动要求 - 内容大小必须大于frame
    scrollView.contentSize = CGSizeMake(image.size.width, image.size.height);
    BOOL isDecelerating = [scrollView isDecelerating];
    NSLog(@"%d",isDecelerating);
    // 关闭弹性效果
    scrollView.bounces = NO;
    
    // 关闭滚动条
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    
    // 设置按页翻滚 (一页的大小就是scrollView的frame的大小)
//    scrollView.pagingEnabled = YES;
    
    // 设置偏移量  可视范围 - > 内容原点的距离
//    [scrollView setContentOffset:CGPointMake(100, 0) animated:YES];
    
    // 关闭导航条的自动偏移
    self.automaticallyAdjustsScrollViewInsets = NO;
    
    // 设置代理
    scrollView.delegate = self;
    
    // 由于要缩放内容,我们要设置最大和最小的缩放比例
    scrollView.minimumZoomScale = 1.0f;
    // 最大范围
    scrollView.maximumZoomScale = 3.0f;
    // 与协议方法缺一不可 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView ;
   
}

#pragma mark -  UIScrollView Delegate

// 一旦偏移量发生变化,就会调用 - > 滚动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"%s",__func__);
}

// 拖拽开始时调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    NSLog(@"%s",__func__);
}

// 拖拽停止时调用  减速 -> 是否有减速运动
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    NSLog(@"%s - %d",__func__,decelerate);
}

// 开始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
    NSLog(@"%s",__func__);
    
}

// 减速运动停止时调用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    NSLog(@"%s",__func__);
}

// 想要缩放谁,就返回scrollView中对应的view
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    // 想要缩放谁,就返回scrollView中对应的view
    return [scrollView viewWithTag:102];
}

// 当滚动视图开始缩放时执行
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2) {
    
    NSLog(@"%s",__func__);
}
// 当滚动视图缩放结束时执行
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale    {
    NSLog(@"%d",view.tag);
    NSLog(@"scale = %f ",scale);
}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    
}


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    
    if ([[touches anyObject] tapCount] == 1) {
        UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1001];
        scrollView.zoomScale = 1.5;
        
    }
    
    
}
// 开始拖拽
// 滚动 - 偏移量一变就执行
// 拖拽结束

// 开始减速
// 滚动 - 偏移量一变就执行
// 结束减速


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值