使UIImage全屏覆盖Nav& Tabbar也是

时间:2017-04-19 23:21:55

标签: swift swift3 uiimage

我有一张照片全屏显示黑色条以保持比例。我遇到的问题是它也不会越过导航栏和标签栏。我猜测我需要改变的部分代码就在这里

    let imageView = sender.view as! UIImageView
    let newImageView = UIImageView(image: imageView.image)
    newImageView.frame = self.view.frame
    newImageView.backgroundColor = .black
    newImageView.contentMode = .scaleAspectFit

我可以将newImageView框架设置为什么,以便涵盖所有内容?

1 个答案:

答案 0 :(得分:0)

问题是全屏图像位于导航栏和标签栏后面。

要将其设置为全屏尺寸,请使用UIScreen.main.bounds

newImageView.frame = UIScreen.main.bounds

显示全屏图像时,隐藏导航栏和标签栏:

self.navigationController?.isNavigationBarHidden = true
self.tabBarController?.tabBar.isHidden = true

取消全屏图像时,请恢复导航栏和标签栏:

self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false

替代解决方案

正如评论中提到的@LeoDabus,您可以通过展示一个新的viewController来解决这个问题,该viewController包含覆盖整个视图的imageView。以模块形式呈现此viewController:

self.present(newViewController, animated: false, completion: nil)

注意:将animated设置为false将允许全屏图像显示而不显示动画。