- (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;
}
}
// 开始拖拽
// 滚动 - 偏移量一变就执行
// 拖拽结束
// 开始减速
// 滚动 - 偏移量一变就执行
// 结束减速
UIScrollView
最新推荐文章于 2024-06-04 16:16:14 发布