swift4 透明背景VC
- 新建一个demo,在StoryBoard上创建三个VC,如下图:
- 新建两个VC,SecondViewController,和ThirdViewController,分别与StoryBoard的VC相关联。
以SecondViewController举例:
- 该拖线的拖线,添加点击事件。
4.代码部分:
ViewController
// // ViewController.swift // ClearBgVC // // Created by iOS on 2018/10/16. // Copyright © 2018年 weiman. All rights reserved. // import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } /// 弹出透明背景的VC,present进来的 @IBAction func jumpToSecondVC(_ sender: Any) { let vc = SecondViewController.instance() vc.modalPresentationStyle = .custom vc.modalTransitionStyle = .crossDissolve present(vc, animated: true, completion: {}) } @IBAction func jumpToThirdVC(_ sender: Any) { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5) { [weak self] in if let image = self?.normalSnapshotImage() { let vc = ThirdViewController.instance(image: image) self?.navigationController?.pushViewController(vc, animated: true) } } } } extension ViewController { /// 普通截图 func normalSnapshotImage() -> UIImage? { UIGraphicsBeginImageContextWithOptions(view.frame.size, false, UIScreen.main.scale) if let context = UIGraphicsGetCurrentContext() { view.layer.render(in: context) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return image } return nil } }
SecondViewController:
// // SecondViewController.swift // ClearBgVC // // Created by iOS on 2018/10/16. // Copyright © 2018年 weiman. All rights reserved. // import UIKit class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() setup() } private func setup() { } class func instance() -> SecondViewController { let storyBoard = UIStoryboard(name: "Main", bundle: nil) let vc = storyBoard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController return vc } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { dismiss(animated: true) } }
ThirdViewController:
// // ThirdViewController.swift // ClearBgVC // // Created by iOS on 2018/10/16. // Copyright © 2018年 weiman. All rights reserved. // import UIKit class ThirdViewController: UIViewController { @IBOutlet weak var bgImage: UIImageView! private var image: UIImage! override func viewDidLoad() { super.viewDidLoad() bgImage.image = image } class func instance(image: UIImage) -> ThirdViewController { let storyB = UIStoryboard.init(name: "Main", bundle: nil) let vc = storyB.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController vc.image = image return vc } }
效果:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(转载)iOS 中获取某个视图的截图
原文地址:https://blog.csdn.net/u011619283/article/details/78658613 最近在做SDK的截图,想触发类似系统的截屏功能,找了一圈,总结一下靠谱的几种方式。 我写了个UIView 的category,将这几种方式封装和简化了一下。 第一种情形截图 这种是最最普通的截图,针对一般的视图上添加视图的情况,基本都可以使用。 源码: /** 普通的截图 该API仅可以在未使用layer和OpenGL渲染的视图上使用 @return 截取的图片 */ - (UIImage *)nomalSnapshotImage { UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, [UIScreen mainScreen].scale); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext(...
- 下一篇
xcode10 编译报错Multiple commands produce
xcode10 编译报错: Showing Recent Messages :-1: Multiple commands produce '/Users/ios/Library/Developer/Xcode/DerivedData/MyLiveStudy-bnhwavfhjpuxadbeyicawknnfvph/Build/Products/Debug-iphoneos/MyLiveStudy.app/Info.plist': Target 'MyLiveStudy' (project 'MyLiveStudy') has copy command from '/Users/ios/Desktop/github/00直播/MyLiveStudy/MyLiveStudy/Others/Info.plist' to '/Users/ios/Library/Developer/Xcode/DerivedData/MyLiveStudy-bnhwavfhjpuxadbeyicawknnfvph/Build/Products/Debug-iphoneos/MyLiveStudy.app/Inf...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- Mario游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 2048小游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8