iOS - 关于点击小图查看大图的封装(包含单击、双击、捏合手势)

这篇博客介绍了如何在iOS应用中封装一个图片浏览功能,包括使用UICollectionView展示图片、实现单击返回、双击放大/缩小以及捏合手势放大/缩小图片。主要涉及三个类:ImageScanController、ScrollImageView和ImageScanCell。ImageScanController作为控制器,处理数据源和手势处理;ScrollImageView是自定义的UIScrollView子类,实现了图片的缩放功能;ImageScanCell是UICollectionViewCell的子类,用于展示图片。
摘要由CSDN通过智能技术生成

这次的封装,最终效果就是可以滑动查看所有图片,单击返回、双击放大/缩小、捏合放大/缩小的手势。在此,封装了三个类。如下所示:

第一个类(我们直接要使用的类):

#import "ImageScanCell.h"


@interface ImageScanController : BaseController


//1.图片数组 (一组图片, 是给collectionView现实的)

@property(nonatomic, strong)NSArray * imageURLStringArray;


//2.当前是 哪个item被点击,就显示哪个item的图片

//如何得知哪个item'被点击, 传递 当前item的索引位置

@property(nonatomic, strong)NSIndexPath * selectedIndexPath;


@property (nonatomic,assign) NSInteger currentPage;

@end


// .m中

#import "ImageScanController.h"


@interface ImageScanController ()<UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

{

    //子视图

    UICollectionView * _collectionView;

    

    //取非

    BOOL  _isHidden;

    

    // 需要下载的图片

    UIImage * _myImage;

    

    UIPageControl *_page;

    

}

@end


static NSString * imageScanID = @"ImageScanCell";


@implementation ImageScanController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    

    self.title = @"图片浏览";

    

    self.view.backgroundColor = [UIColor whiteColor];

    

    

    //创建子视图

    [self _loadSubViews];

    

    //创建 下载的按钮

    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button setImage:[UIImage imageNamed:@"img_download_p"] forState:UIControlStateNormal];

    [button addTarget:self action:@selector(downloadImageAction:) forControlEvents:UIControlEventTouchUpInside];

    button.frame = CGRectMake(kScreenWidth - 60 - 20, kScreenHeight - 60 - 64 - 30, 60, 60);

    [self.view addSubview:button];

    

    //注册成为kNavigationBarHideOrNot这条通知的观察者

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(hideNavigationOrNot:) name:@"HideOrNot" object:nil];

    

}


#pragma mark - button action


- (void)downloadImageAction:(UIButton *)sender{

    //实现下载 图片 到相册 (保存)

    

    //C语言有一个函数

    //参数一:要保存哪张图片

    //参数二:回调目标, 当这个函数走完之后,会由 哪个对象(当前这个参数), 去调用一个什么方法(后面参数三的方法)

    //参数三:@selector  方法签名, 是要被调用的方法的名字(文档中有给定的方法)

    //参数四:指 要传递的信息,一般是NULL

    

    //回调方法注意看文档。

    UIImageWriteToSavedPhotosAlbum(_myImage, self, @selector(image: didFinishSavingWithError:contextInfo:), NULL);

    

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值