09

//滚动过程中触发的方法

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

    NSLog(@"正在滚动");

}

 

//即将开始拖拽的方法,此时滚动视图即将加速

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

    NSLog(@"即将进行拖拽");

}

 

//结束拖拽的方法,不再加速

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {

    NSLog(@"拖拽结束");

}

 

//即将开始减速

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

    NSLog(@"即将开始减速");

}

 

//结束减速,也就是停止滚动

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

    NSLog(@"结束滚动");

    /*

    if (scrollView.zoomScale != 1.0) {

        scrollView.zoomScale = 1.0;

    }*/

    

    

    // 先从负责滚动的大scrollView找到他的子视图

    for (UIScrollView *sView in scrollView.subviews){

        // 在根据子类的对象类型进行判断

        if ([sView isKindOfClass:[UIScrollView class]]){

            // 把视图的尺寸恢复到原有尺寸

            sView.zoomScale = 1.0;

        }

    }

 

}

 

//指定缩放视图

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {

    return [scrollView.subviews objectAtIndex:0];

}

 

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

    UIImageView *imageView = [scrollView.subviews firstObject];

    

    if (scrollView.zoomScale <= 1.0) {

        imageView.center = CGPointMake(kWidth/ 2, kHeight / 2);

    }

}

 

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {

    NSLog(@"%@",NSStringFromCGSize(scrollView.contentSize));

}

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //创建滚动视图

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    

    //设置滚动视图的代理

    scrollView.delegate = self;

    

    /**

        如果想实现滚动视图的缩放功能,必须指定缩放的视图以及(表层scrollView的)缩放的比例

        指定缩放视图需要实现代理方法,指定缩放比例,是为滚动设置缩放比例

     */

//    scrollView.minimumZoomScale = 0.5;//不能把缩放比例设置给底层scrollView

//    scrollView.maximumZoomScale = 2.0;

    

    

    //设置滚动视图的相关属性

    //滚动区域,内容区域的大小

    //如果想要实现滚动操作,有三种情况

    /**

        1、内容视图(滚动区域)的宽大于滚动视图的宽

        2、内容视图(滚动区域)的高大于滚动视图的高

        3、内容视图(滚动区域)的宽和高都大于滚动视图的宽和高

     */

    scrollView.contentSize = CGSizeMake(7 * kWidth, kHeight);

    

    //滚动视图偏移量

    scrollView.contentOffset = CGPointMake(0, 0);

    

    //整页滚动

    scrollView.pagingEnabled = YES;

    

    //关闭横向显示条

    scrollView.showsHorizontalScrollIndicator = NO;

    

    //关闭滚动视图的回弹效果(默认是开启的)

    scrollView.bounces = NO;

    

    //for循环创建七个UIImageView并且添加到滚动视图上面

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

        

        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

        imageView.image = [UIImage imageNamed:[[NSString alloc] initWithFormat:@"h%d.jpeg",i + 1]];

        

        UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(kWidth * i, 0, kWidth, kHeight)];

        scroll.delegate = self;

        scroll.minimumZoomScale = 0.5;//最小缩放比例

        scroll.maximumZoomScale = 2.0;//最大缩放比例

        [scroll addSubview:imageView];

        

        [scrollView addSubview:scroll];

        

        [imageView release];

        [scroll release];

    }

    

    [self.view addSubview:scrollView];

    

    [scrollView release];

    

    // Do any additional setup after loading the view.

}

 

posted @ 2016-02-23 08:58  whwhll  阅读(269)  评论(0编辑  收藏  举报