让 UIImage 全屏覆盖 Nav & Tabbar

Posted

技术标签:

【中文标题】让 UIImage 全屏覆盖 Nav & Tabbar【英文标题】:Make UIImage full screen overlaying Nav & Tabbar too 【发布时间】:2017-04-19 23:21:54 【问题描述】:

我有一张全屏图片,带有黑条以保持比例。我遇到的问题是它也没有越过导航栏和标签栏。我猜我需要更改的代码部分在这里

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

我可以将 newImageView 框架设置为什么以使其覆盖所有内容?

【问题讨论】:

除非你要呈现一个新的viewController,否则你需要隐藏导航栏和标签栏。请参阅我的更新答案以了解如何做到这一点。 【参考方案1】:

问题是全屏图片在导航栏和标签栏后面。

要将其设置为全屏大小,请使用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 在 cmets 中提到的,您可以通过提供一个新的 viewController 来解决这个问题,该 viewController 包含覆盖整个视图的 imageView。以模态方式呈现此 viewController:

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

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

【讨论】:

与我目前尝试的结果相同 @TommyK 你需要展示一个新的视图控制器

以上是关于让 UIImage 全屏覆盖 Nav & Tabbar的主要内容,如果未能解决你的问题,请参考以下文章

如何让center面板弹出的dialog覆盖全屏?

全屏 UIImage 视图

soui 覆盖任务栏全屏

全屏显示uiimage时如何显示导航栏顶部和工具栏?

如何让导航栏在一行上全屏显示以及设置百分比让其居中显示

DrawerLayout 全屏显示(可以覆盖到statusbar上面)