[Swift通天遁地]七、数据与安全-(7)创建文件浏览器:以可视化的方式浏览沙箱文件
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10307061.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示使用开源类库实现可视化的方式浏览沙箱文件目录。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'FileBrowser' 7 end
根据配置文件中的相关配置,安装第三方库。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //引入已经安装的第三方类库 3 import FileBrowser 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //添加一个按钮,当用户点击该按钮时,弹出文件浏览器窗口。 12 let button = UIButton(type: .roundedRect) 13 //设置按钮的显示区域 14 button.frame = CGRect(x: 80, y: 180, width: 150, height: 44) 15 //设置按钮的背景颜色为橙色 16 button.backgroundColor = UIColor.orange 17 //设置按钮的前景颜色为白色 18 button.tintColor = UIColor.white 19 //设置按钮在正常状态下的标题文字 20 button.setTitle("Open file browser", for: .normal) 21 //给按钮绑定点击事件 22 button.addTarget(self, action: #selector(ViewController.openFileBrowser(_:)), for: UIControl.Event.touchUpInside) 23 24 //设置根视图的背景颜色为橙色 25 self.view.backgroundColor = UIColor.orange 26 //将按钮添加到根视图 27 self.view.addSubview(button) 28 } 29 30 //添加一个方法,用来响应按钮的点击事件 31 @objc func openFileBrowser(_ button:UIButton) 32 { 33 //初始化一个文件浏览器对象 34 let fileBrowser = FileBrowser() 35 //以模态窗口的方式,打开浏览器窗口。 36 self.present(fileBrowser, animated: true, completion: nil) 37 38 //处理用户在文件浏览器中,选择某个图片文件的事件。 39 fileBrowser.didSelectFile = { (file: FBFile) -> Void in 40 //获得被选择的文件在沙箱中的路径。 41 let imagePath = NSHomeDirectory() + "/Documents/"+file.displayName 42 //添加一个异常捕捉语句,用来完成读取选择文件的任务。 43 do 44 { 45 //转换文件路径的格式 46 let url = URL(fileURLWithPath: imagePath) 47 //加载指定的文件,并存储在数据对象中。 48 let data = try Data(contentsOf: url) 49 //使用数据对象,生成一个图片文件。 50 let img = UIImage(data: data) 51 //初始化一个图像视图,用来显示用户选择的图片。 52 let imageView = UIImageView(image: img) 53 //并将图像视图添加到根视图中。 54 self.view.addSubview(imageView) 55 } 56 catch 57 { 58 print("Something went wrong :(") 59 } 60 } 61 } 62 63 override func didReceiveMemoryWarning() { 64 super.didReceiveMemoryWarning() 65 // Dispose of any resources that can be recreated. 66 } 67 }