2017-04-19 136 views
0

我有一个图片,成为全屏与黑色条,以保持比例。我遇到的问题是它不会覆盖导航栏和tabbar。我猜我需要改变的代码部分在这里使UIImage全屏覆盖导航和Tabbar

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

我可以如何设置newImageView框架以覆盖所有内容?

+0

除非你要呈现一个新的viewController,否则你需要隐藏导航栏和标签栏。查看我的更新答案,了解如何做到这一点。 – vacawama

回答

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,您可凭它包含了覆盖整个视图的ImageView的一个新的viewController解决这个问题。

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

注:与模态呈现这个的viewController设置animatedfalse将允许全屏图像显示时不动画。

+0

与我目前正在尝试的结果相同 –

+1

@TommyK您需要提供一个新的视图控制器 –