【IOS】- ScrollView-01
•CGSize contentSize:
|
设置UIScrollView的滚动范围 |
•CGPoint contentOffset: | UIScrollView当前滚动的位置 |
•UIEdgeInsets contentInset: | 增加滚动视图四周的增加滚动范围 |
1.创建
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:scrollView];
2.添加imageview
UIImage *image = [UIImage imageNamed:@"001.jpeg"]; UIImageView *imageView = [[UIImageView alloc]initWithImage:image]; [scrollView addSubview:imageView]; // 如果不指定uiimageView 大小默认会使用image的大小
3.设置滚动属性
// 2. 设置滚动视图属性 [scrollView setContentSize:image.size];
4.设置边界属性
// 设置边界属性 UIEdgeInsets edgs = UIEdgeInsetsMake(10, 10, 10, 10);// 上左下右 [scrollView setContentInset:edgs];
5.设置是否拥有弹簧属性
[_scrollView setBounces:NO];
6.设置横纵滚动条
[_scrollView setShowsHorizontalScrollIndicator:NO];
[_scrollView setShowsVerticalScrollIndicator:NO];
7.设置缩小与放大
// 指定最小缩放比例 [_scrollView setMinimumZoomScale:0.2]; // 指定最大缩放比例 [_scrollView setMaximumZoomScale:2.0]; // 设置滚动视图的代理 [_scrollView setDelegate:self];
8.缩放时执行的方法
#pragma mark 滚动视图的代理方法 // 缩放中的代理方法 - (void)scrollViewDidZoom:(UIScrollView *)scrollView { NSLog(@"缩放中。。。"); }
9.缩放完成执行的代理方法
// 缩放完成的代理方法 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { NSLog(@"缩放完成 %f", scale); // 换个图像试试看 NSString *imageFile = [NSString stringWithFormat:@"%03d.jpeg", arc4random_uniform(10) + 1]; UIImage *image = [UIImage imageNamed:imageFile]; [_imageView setImage:image]; }
10.返回要缩放的视图对象
// 一定要记住:本代理方法的返回值就是“要缩放的视图对象” - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return _imageView; }
11.移动图像的方法
- (IBAction)moveImage:(UIButton *)sender { CGPoint offset = _scrollView.contentOffset; switch (sender.tag) { case 0: offset.x -= 50; break; case 1: offset.y -= 50; break; case 2: offset.y += 50; break; case 3: offset.x += 50; break; default: break; } // 需要做一个位置的修正 // 水平方向,注意在修正左边位置时,需要使用edge的-left UIEdgeInsets edge = _scrollView.contentInset; if (offset.x < -edge.left) { offset.x = -edge.left; } else if (offset.x > _scrollView.contentSize.width - _scrollView.bounds.size.width + edge.right) { offset.x = _scrollView.contentSize.width - _scrollView.bounds.size.width + edge.right; } // 垂直方向,注意在修正顶部位置时,需要使用edge的-top if (offset.y < -edge.top) { offset.y = -edge.top; } else if (offset.y > _scrollView.contentSize.height - _scrollView.bounds.size.height + edge.bottom) { offset.y = _scrollView.contentSize.height - _scrollView.bounds.size.height + edge.bottom; } [_scrollView setContentOffset:offset animated:YES];
12.增加移动动画
// 修改图像的便宜位置 [UIView animateWithDuration:0.3f animations: ^{ [_scrollView setContentOffset:offset]; }];
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。