1自己代理
//
// ViewController.m
// UIScrollView代理delegate
//
// Created by cdj on 17/9/10.
// Copyright © 2017年 ue. All rights reserved.
//
#import "ViewController.h"
@interface ViewController () <UIScrollViewDelegate> //必须遵守代理协议
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView * scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor redColor];
scrollView.frame = CGRectMake(0, 20, 300, 200);
[self.view addSubview:scrollView];
// 注意:通过代码创建scrollView时,一开始subViews这个数组为nil
// NSLog(@"%@", scrollView.subviews);
UIImage *image = [UIImage imageNamed:@"minion"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[scrollView addSubview:imageView];
scrollView.contentSize = image.size;
// NSLog(@"-----%@", scrollView.subviews);
// 3设置代理
scrollView.delegate = self;
}
/**
* 当scrollView滚动时自动调用
*
* @param scrollView <#scrollView description#>
*/
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"2222scrollViewDidScroll");
}
/**
* 用户即将开始拖拽
*
* @param scrollView <#scrollView description#>
*/
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"11111scrollViewWillBeginDragging");
}
/**
* 即将停止时调用
*
* @param scrollView <#scrollView description#>
* @param velocity <#velocity description#>
* @param targetContentOffset <#targetContentOffset description#>
*/
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
NSLog(@"3333scrollViewWillEndDragging");
}
/**
* 停止时跳用
*
* @param scrollView <#scrollView description#>
* @param decelerate <#decelerate description#>
*/
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"4444scrollViewDidEndDragging");
if (decelerate == NO) {
NSLog(@"用户已经停止拖拽");
}else{
NSLog(@"用户意见停止拖拽,但由于惯性还在继续减速滚动");
}
}
/**
* 减速完毕,停止滚动
*
* @param scrollView <#scrollView description#>
*/
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"555scrollViewDidEndDecelerating 减速完毕,停止滚动");
}
@end
2任何oc对象都可以作为scrollView的代理
//
// ViewController.m
// UIScrollView代理delegate
//
// Created by cdj on 17/9/10.
// Copyright © 2017年 ue. All rights reserved.
//
#import "ViewController.h"
#import "UECar.h"
@interface ViewController () <UIScrollViewDelegate> //必须遵守代理协议
@property (nonatomic, strong) UECar *car;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView * scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor redColor];
scrollView.frame = CGRectMake(0, 20, 300, 200);
[self.view addSubview:scrollView];
// 注意:通过代码创建scrollView时,一开始subViews这个数组为nil
// NSLog(@"%@", scrollView.subviews);
UIImage *image = [UIImage imageNamed:@"minion"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[scrollView addSubview:imageView];
scrollView.contentSize = image.size;
// NSLog(@"-----%@", scrollView.subviews);
// 3设置代理:1任何oc对象都可以作为scrollView的代理 2苹果设计的代理属性是weak?
self.car = [[UECar alloc] init];
scrollView.delegate = self.car;
}
@end
//
// UECar.h
// UIScrollView代理delegate
//
// Created by cdj on 17/9/10.
// Copyright © 2017年 ue. All rights reserved.
//
//#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface UECar : NSObject <UIScrollViewDelegate>
@end
//
// UECar.m
// UIScrollView代理delegate
//
// Created by cdj on 17/9/10.
// Copyright © 2017年 ue. All rights reserved.
//
#import "UECar.h"
@interface UECar ()
@end
@implementation UECar
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"scrollViewDidScroll 滑动了");
}
-(void)dealloc{
NSLog(@"UECar 销毁了");
}
@end