让 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的主要内容,如果未能解决你的问题,请参考以下文章