2019独角兽企业重金招聘Python工程师标准>>>

@objc func didTap() {

print("浏览照片")

let image = self.chatImageView.image

let window = self.viewController().view

let backgroundView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: WIDTH, height: HEIGHT))

oldFrame = self.chatImageView.convert(self.chatImageView.bounds, to: window)

backgroundView.backgroundColor = UIColor.black

backgroundView.alpha = 0.5

let imageView = UIImageView.init(frame: oldFrame)

imageView.image = image

imageView.tag = 1

backgroundView.addSubview(imageView)

window?.addSubview(backgroundView)

//点击图片缩小的手势

let tap = UITapGestureRecognizer.init(target: self, action: #selector(self.hideImage(tap:)))

tap.numberOfTapsRequired = 1

let longTap = UILongPressGestureRecognizer.init(target: self, action: #selector(self.alertShow))

backgroundView.addGestureRecognizer(tap)

backgroundView.addGestureRecognizer(longTap)

UIView.animate(withDuration: 0.3) {

imageView.frame =  CGRect.init(x: 0, y: (HEIGHT - (image?.size.height)! * WIDTH/(image?.size.width)!)/2, width: WIDTH, height: (image?.size.height)! * WIDTH/(image?.size.width)!)

backgroundView.alpha = 1

}

}

@objc func hideImage(tap: UITapGestureRecognizer) {

let backgroundView = tap.view

let imageView = tap.view?.viewWithTag(1) as! UIImageView

UIView.animate(withDuration: 0.3, animations: {

imageView.frame = self.oldFrame

backgroundView?.alpha = 0

}) { (finished) in

backgroundView?.removeFromSuperview()

}

}

@objc func alertShow() {

let alert = UIAlertController.init(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.actionSheet)

let action1 = UIAlertAction.init(title: "下载图片", style: UIAlertActionStyle.default) { (action) in

}

let action2 = UIAlertAction.init(title: "Cancel", style: UIAlertActionStyle.cancel) { (action) in

}

alert.addAction(action1)

alert.addAction(action2)

self.viewController().present(alert, animated: true, completion: nil)

}

//获取当前视图所在控制器

func viewController () -> (UIViewController){

var next:UIResponder?

next = self.next!

repeat {

if ((next as?UIViewController) != nil) {

return (next as! UIViewController)

}else {

next = next?.next

}

} while next != nil

return UIViewController()

}

转载于:https://my.oschina.net/u/3382458/blog/1620902

swift 点击imageView全屏预览(UIview中弹出提示框)相关推荐

  1. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...

    AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...

  2. 手机端点击图片全屏预览

    <!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...

  3. Taro框架中 Image 和 Video 组件预览图片/视频时添加明显的关闭按钮以关闭全屏预览

    需求 Taro框架中 Image 和 Video 组件预览图片/视频时 添加明显的关闭按钮 以关闭全屏观看,避免用户直接操作返回后导致页面空白(原有消息记录消失 - 重新进入项目首页) [补充] 全屏 ...

  4. 微信小程序轮播图放大全屏预览(爆料)

    轮播图放大预览效果的实现 前言 一.wx.previewImage接口API 官方介绍: 代码示例: 二.图片全屏预览 1.效果展示 2.编码 img.wxml img.js img.wxss 三.轮 ...

  5. android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc

    Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...

  6. android camera 全屏,Android Camera做全屏预览之最简单方法.doc

    Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏,我们之所以喜欢全屏的一个主要原因就是全屏的感 ...

  7. 微信小程序全屏预览视屏、取消全屏预览

    前言 bindfullscreenchange 函数可以监听到视频进入和退出全屏时的事件, 利用次函数,可以实现全屏预览和取消全屏预览的功能. 首先看下bindfullscreenchange回调的参 ...

  8. Vue 单/多图片(可全屏预览)翻页轮播组件

    支持单/多张图翻页轮播 可全屏预览 自定义图片宽高 自定义无图提示语 自带图片加载loading 可将源码根据实际需求改造. 没安装 Element-UI 的可以将图片标签换为原生 效果图 全屏预览 ...

  9. 微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题

    自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示). /*** 微信小程序图片预览组件* 1.支持预览svg.png.jpeg.jp ...

最新文章

  1. Ubuntu 17 安装sublime
  2. reg 只能导入二进制注册文件
  3. 【ijkplayer】编译 Android 版本的 ijkplayer ④ ( 安装 make yasm 软件 | 执行 compile-ffmpeg.sh all 命令编译 ffmpeg )
  4. Java二手车交易系统
  5. scp报错:not a regular file
  6. VisualStudio配置中文提示
  7. 与孩子一起学编程python_与孩子一起学编程(Python读书笔记3)
  8. 信息化与工业化融合的内涵、层次和方向
  9. Centos磁盘管理和文件系统管理
  10. 在虚拟机中安装Linux系统
  11. 林子雨-2.3 面向对象编程基础
  12. 《2019测试面试题-上海悠悠.pdf》
  13. 腾讯2016实习招聘-安全岗笔试题答案详细解释
  14. CSDN博客大神汇总
  15. 高性能信号发生器介绍
  16. Sentry 清理数据
  17. js 防抖是什么 JavaScript防抖怎么用
  18. 雾霾太重?深度神经网络教你如何图像去雾
  19. 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯
  20. 怎么理解的并发量和QPS?

热门文章

  1. [Java] 蓝桥杯 BASIC-2 基础练习 01字串
  2. 计算机基础说课稿十分钟,关于《计算机应用基础》的说课稿一、教材分析(说教材):.pdf...
  3. python爬虫入库到帝国cms_帝国小说连载系统合理利用第三方云爬虫缓存章节内容...
  4. 好几个div(元素)找到最后一个
  5. webstrom命名改名 命令
  6. 日期工具类---DateUtil
  7. Win7 下安装流程图绘制软件 Dia
  8. canvas绘图粒子扩散效果【原创】
  9. 如何将cocos2d-x项目打包成一个.exe
  10. 事关Animation Tree的工作随笔(一)