swift 点击imageView全屏预览(UIview中弹出提示框)
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中弹出提示框)相关推荐
- android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...
AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...
- 手机端点击图片全屏预览
<!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...
- Taro框架中 Image 和 Video 组件预览图片/视频时添加明显的关闭按钮以关闭全屏预览
需求 Taro框架中 Image 和 Video 组件预览图片/视频时 添加明显的关闭按钮 以关闭全屏观看,避免用户直接操作返回后导致页面空白(原有消息记录消失 - 重新进入项目首页) [补充] 全屏 ...
- 微信小程序轮播图放大全屏预览(爆料)
轮播图放大预览效果的实现 前言 一.wx.previewImage接口API 官方介绍: 代码示例: 二.图片全屏预览 1.效果展示 2.编码 img.wxml img.js img.wxss 三.轮 ...
- android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc
Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...
- android camera 全屏,Android Camera做全屏预览之最简单方法.doc
Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏,我们之所以喜欢全屏的一个主要原因就是全屏的感 ...
- 微信小程序全屏预览视屏、取消全屏预览
前言 bindfullscreenchange 函数可以监听到视频进入和退出全屏时的事件, 利用次函数,可以实现全屏预览和取消全屏预览的功能. 首先看下bindfullscreenchange回调的参 ...
- Vue 单/多图片(可全屏预览)翻页轮播组件
支持单/多张图翻页轮播 可全屏预览 自定义图片宽高 自定义无图提示语 自带图片加载loading 可将源码根据实际需求改造. 没安装 Element-UI 的可以将图片标签换为原生 效果图 全屏预览 ...
- 微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题
自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示). /*** 微信小程序图片预览组件* 1.支持预览svg.png.jpeg.jp ...
最新文章
- Ubuntu 17 安装sublime
- reg 只能导入二进制注册文件
- 【ijkplayer】编译 Android 版本的 ijkplayer ④ ( 安装 make yasm 软件 | 执行 compile-ffmpeg.sh all 命令编译 ffmpeg )
- Java二手车交易系统
- scp报错:not a regular file
- VisualStudio配置中文提示
- 与孩子一起学编程python_与孩子一起学编程(Python读书笔记3)
- 信息化与工业化融合的内涵、层次和方向
- Centos磁盘管理和文件系统管理
- 在虚拟机中安装Linux系统
- 林子雨-2.3 面向对象编程基础
- 《2019测试面试题-上海悠悠.pdf》
- 腾讯2016实习招聘-安全岗笔试题答案详细解释
- CSDN博客大神汇总
- 高性能信号发生器介绍
- Sentry 清理数据
- js 防抖是什么 JavaScript防抖怎么用
- 雾霾太重?深度神经网络教你如何图像去雾
- 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯
- 怎么理解的并发量和QPS?
热门文章
- [Java] 蓝桥杯 BASIC-2 基础练习 01字串
- 计算机基础说课稿十分钟,关于《计算机应用基础》的说课稿一、教材分析(说教材):.pdf...
- python爬虫入库到帝国cms_帝国小说连载系统合理利用第三方云爬虫缓存章节内容...
- 好几个div(元素)找到最后一个
- webstrom命名改名 命令
- 日期工具类---DateUtil
- Win7 下安装流程图绘制软件 Dia
- canvas绘图粒子扩散效果【原创】
- 如何将cocos2d-x项目打包成一个.exe
- 事关Animation Tree的工作随笔(一)