我如何能实现全屏图像,并驳回了苹果照片图像的功能?此外,怎样可以得到的图像的高宽比,以适应全屏视图内?难道他们发送一个UIImage到一个新的视图控制器?
我的当前fullscreening的图像的方法简单地设置一个UIImageView的帧等于上海华的框架而转动UINavigationBar的和UITabBar的阿尔法为0并关闭,我加了敲击手势识别器从上海华反转阿尔法和去除的UIImageView 。
这里是我的全屏和罢免代码
func fullscreen(forImage image: UIImage) {
let imageView = UIImageView(image: image)
imageView.frame = self.view.frame
imageView.backgroundColor = .black
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
imageView.isUserInteractionEnabled = true
self.navigationController?.navigationBar.alpha = 0
self.tabBarController?.tabBar.alpha = 0
let dismissTap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
imageView.addGestureRecognizer(dismissTap)
self.view.addSubview(imageView)
}
@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
sender.view?.removeFromSuperview()
self.navigationController?.navigationBar.alpha = 1
self.tabBarController?.tabBar.alpha = 1
}
这可以用苹果的QuickLook框架,它的伟大工程的许多扩展和图像的集合来实现。
编辑:你们中的大多数需要的功能内置在QLPreviewController
let previewController = QLPreviewController()
previewController.dataSource = self
self.present(previewController, animated: true, completion: nil)
数据源是任何类符合QLPreviewControllerDataSource
协议
Here是从苹果的视频指导如何实现这一点很容易
编辑:这部分云在previewItemAt
功能
guard let url = Bundle.main.url(forResource: "imageName", withExtension: "jpg")
else {
fatalError("Could not load imageName.jpg")
}
return url as QLPreviewItem