iOS之图片点击看大图

简介: iOS之图片点击看大图

iOS之图片点击看大图


先看效果图哈

214a5b33d8ddfa1ce69531ff5042e222.jpg

seebigpicture.gif

在.h文件中

#import <UIKit/UIKit.h>
@interface SsrSeeBigView : UIView
- (instancetype)initWithFrame:(CGRect)frame image:(UIImage *)Selectimage IndexString:(NSString *)IndexString;
@end

在.m文件中

#import "LYWseeBigView.h"
#import <UIImageView+WebCache.h>
/*** 屏幕宽 ***/
#define kScreenWidth ([UIScreen mainScreen].bounds.size.width)
/*** 屏幕高 ***/
#define kScreenHeight ([UIScreen mainScreen].bounds.size.height)
@interface LYWseeBigView ()
@property (nonatomic, assign) UIView *background;//图片放大
@property (nonatomic , strong) UIImageView *browseImgView;
@end
@implementation LYWseeBigView
- (instancetype)initWithFrame:(CGRect)frame image:(UIImage *)Selectimage IndexString:(NSString *)IndexString
{
    if (self = [super initWithFrame:frame])
    {
        //创建一个黑色背景
        //初始化一个用来当做背景的View。
        UIView *bgView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
        _background = bgView;
        [bgView setBackgroundColor:[UIColor blackColor]];
        [self addSubview:bgView];
        //创建显示图像的视图
        //初始化要显示的图片内容的imageView
        UIImageView *browseImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, kScreenWidth, kScreenHeight - 20)];
        browseImgView.contentMode = UIViewContentModeScaleAspectFit;
        self.browseImgView = browseImgView;
        //要显示的图片,即要放大的图片
        if (Selectimage) {
            _browseImgView.image = Selectimage;
        }
        //如果传递的是url
        if (IndexString) {
            [_browseImgView sd_setImageWithURL:[NSURL URLWithString:IndexString] placeholderImage:nil];
        }
        [bgView addSubview:browseImgView];
        browseImgView.userInteractionEnabled = YES;
        //添加点击手势(即点击图片后退出全屏)
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(closeView)];
        [browseImgView addGestureRecognizer:tapGesture];
        [self shakeToShow:bgView];//放大过程中的动画
    }
    return self;
}
-(void)closeView
{
    [self removeFromSuperview];
}
//放大过程中出现的缓慢动画
- (void) shakeToShow:(UIView*)aView
{
    CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    animation.duration = 0.3;
    NSMutableArray *values = [NSMutableArray array];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
    animation.values = values;
    [aView.layer addAnimation:animation forKey:nil];
}

简单使用

传递图片
  _seeBigImage = [[SsrSeeBigView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight) image:self.ImageOne.image IndexString:nil];
        [self.view addSubview:_seeBigImage];

传递url
  _seeBigImage = [[SsrSeeBigView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight) image:nil IndexString:self.dataSources[Index]];
        [self.view addSubview:_seeBigImage];

控制器查看图片

https://gitee.com/lanyingwei/codes/ym0zeonwc62fjgrs5lxb129

相关文章
|
9月前
|
JSON JavaScript 安全
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
83 1
|
iOS开发
iOS TextView插入表情或者图片后字体变大或变小
iOS TextView插入表情或者图片后字体变大或变小
127 1
|
Android开发 iOS开发
iOS 替换WebView网页图片为本地图片
iOS 替换WebView网页图片为本地图片
298 0
|
9月前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
5月前
|
iOS开发
iOS超出父控件范围无法点击问题
iOS超出父控件范围无法点击问题
151 58
|
9月前
|
存储 缓存 算法
实现iOS平台的高效图片缓存策略
【4月更文挑战第22天】在移动应用开发中,图片资源的处理是影响用户体验的重要因素之一。特别是对于图像资源密集型的iOS应用,如何有效地缓存图片以减少内存占用和提升加载速度,是开发者们面临的关键挑战。本文将探讨一种针对iOS平台的图片缓存策略,该策略通过结合内存缓存与磁盘缓存的机制,并采用先进的图片解码和异步加载技术,旨在实现快速加载的同时,保持应用的内存效率。
|
5月前
|
iOS开发
iOS超出父控件范围无法点击问题
iOS超出父控件范围无法点击问题
|
9月前
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
9月前
|
存储 Web App开发 Android开发
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
759 1
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
|
9月前
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
65 0

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    24
  • 2
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    21
  • 3
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    141
  • 4
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    224
  • 5
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    87
  • 6
    深入探索iOS开发中的SwiftUI框架
    143
  • 7
    ios样式开关按钮jQuery插件
    58
  • 8
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    74
  • 9
    深入探索iOS与Android操作系统的安全性差异
    102
  • 10
    安卓与iOS开发中的跨平台策略:一次编码,多平台部署
    174