2017-04-19 111 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您需要提供一個新的視圖控制器 –