本文将演示使用开源类库实现可视化的方式浏览沙箱文件目录。
首先确保在项目中已经安装了所需的第三方库。
点击【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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。