IOS 开发之查看大图的实现代码

2020-01-21 01:19:07王旭

IOS 开发之查看大图的实现代码

本项目是取自传智播客的教学项目,加入笔者的修改和润饰。

1. 项目名称:查看大图

2. 项目截图展示

IOS,大图,IOS开发,代码

3. 项目功能

左右滑动查看图片 支持缩放功能 点击中间按钮移动图片

4. 项目代码


#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad
{
  [super viewDidLoad];

  // 设置内容尺寸
  self.scrollView.contentSize = self.imageView.frame.size;

  // 设置
  self.scrollView.delegate = self;

  // 设置最大和最小的缩放比例
  self.scrollView.maximumZoomScale = 2.0;
  self.scrollView.minimumZoomScale = 0.2;

  // 设置边距
  self.scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);

  // 不显示水平滚动标示
  self.scrollView.showsHorizontalScrollIndicator = NO;

  // 不显示垂直滚动标示
  self.scrollView.showsVerticalScrollIndicator = NO;

  // 偏移位置
  self.scrollView.contentOffset = CGPointMake(0, -100);

  // 取消弹簧效果
  self.scrollView.bounces = NO;

  //设置按钮
  UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
  btn.center = self.view.center;

  [self.view addSubview:btn];

  //设置按钮的监听方法
  [btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];

}

 // 移动大图的偏移位置
- (void)click
{
  //取出offset
  CGPoint offset = self.scrollView.contentOffset;

  offset.x += 20;
  offset.y += 20;

  // 更新contentOffset
  self.scrollView.contentOffset = offset;
}


#pragma mark - UIScrollView的代理方法

// 1> scrollView要知道缩放谁

/**
 * 当用户开始拖拽scrollView时就会调用
 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
  NSLog(@"开始拖拽");
}

/**
 * 只要scrollView正在滚动,就会调用
 */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
  NSLog(@"正在滚动%@", NSStringFromCGPoint(scrollView.contentOffset));
}

/**
 * 当用户使用捏合手势的时候会调用
 *
 * @return 返回的控件就是需要进行缩放的控件
 */
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
  NSLog(@"开始缩放");
  return self.imageView;
}

/**
 * 正在缩放的时候会调用
 */
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
  NSLog(@"正在缩放");
}
@end

5. 本项目必须掌握的代码段

设置外边距


self.scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);

结合类型创建按钮


 UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];