2017-07-19 11 views
0

私のアプリの画面の1つに、フルスクリーンのUIImageViewが表示されます。しかし、問題はナビゲーションバーとその下のバーがUIImageViewの上端と下端をブロックすることです。バーがコンテンツをブロックしないようにするにはどうすればよいですか?View Controller(iOS)のメインコンテンツを上下左右に邪魔しないようにする方法

enter image description here

+0

チェックアウトのための

コードのデモ 'topLayoutGuide'と' bottomLayoutGuide'。答えはビューを作成する方法に依存しますが、2つのUIViewControllerプロパティがその答えです。 –

+0

実際にはMWPhotoBrowserというライブラリを使用してビューを作成しています。次のようなビューコントローラを作成します。let mygalleryVC = MyGalleryVC(rootViewController:browser) –

答えて

0

あなたは上に示してきたビューは完全にMWPhotoBrowserライブラリに作成したものであるなら、あなたは写真のサイズの世話をするために、そのライブラリに依存する必要があります。役立つかもしれない、私は自分のコードで表示のみのオプションは以下のとおりです。

browser.zoomPhotosToFill = YES; // Images that almost fill the screen will be initially zoomed to fill (defaults to YES) 
browser.alwaysShowControls = NO; // Allows to control whether the bars and controls are always visible or whether they fade away to show the photo full (defaults to NO) 

あなたは彼らがあなたの視野を調整役立つかどうかを確認するためにこれらの設定でプレイすることがあります。短い言葉で

+0

これらの設定は何もしません。問題を解決するためにナビゲーションコントローラの設定の一部を無効にできることを願っていました。私はカスタムナビゲーションコントローラに写真ブラウザを埋め込みました。 –

+0

あなたのカスタムnavコントローラにはnav barがありますか?またはnavbarを隠しているので、写真ブラウザのnav barが見えますか? – davidethell

0

:あなたはレイヤーの不透明度プロパティを変更することは、0はあなたのイメージビューは0にnavigationBarとTabBarの両方の不透明度を変更するには、画面上に示したときに1が100%のショー

を意味し、100%の非表示を意味し、そして変更これらの不透明度値は1でない場合は1になります。画像ビューにジェスチャ認識機能を追加して不透明度を変更することができます。スウィフト3 & iOSの10

class DetailNavigationController: UINavigationController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     setupViews() 
    } 

    func setupViews() { 
     let detailController = CustomDetailViewController() 
     viewControllers = [detailController] 
     view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(showOrHideBarView))) 

    } 

    func showOrHideBarView() { 
     UIView.animate(withDuration: 0.4) { 
      self.navigationBar.layer.opacity = self.navigationBar.layer.opacity == 1 ? 0: 1 
      self.tabBarController?.tabBar.layer.opacity = self.tabBarController?.tabBar.layer.opacity == 1 ? 0: 1 
     } 
    } 
} 

class CustomDetailViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     setupViews() 
    } 

    func setupViews() { 
     view.backgroundColor = UIColor.green 
    } 
} 
関連する問題