首页 > 代码库 > 【IOS】- ScrollView-01
【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]; }];
【IOS】- ScrollView-01
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。