2017-10-02 37 views
1

ビューコントローラで視差タイプのスクロールエフェクト(または伸縮性のあるヘッダー)を作成しました。'スワイプでナビゲーションバーを隠す'が返されない

私はウィンドウマージンに固定されたuiscrollviewを持っています。この中には、ビューがあります。ビューは、スクロールビューに0の定数制約で固定され、幅が等しくなるように設定されています。 その中にコンテンツがあります。コンテンツの上部に画像があり、これは2つの制約を使用してウィンドウの上部(安全領域ガイド)に固定されています。 最初は定数= 0優先度= 750です。 秒は一定です。< = 0優先度= 1000です。

これは..私はすべてのスクロールをスクロールアップします。私が上から下にスクロールすると、画像が伸びてから跳ね返ります。

質問:ユーザーがスクロールするときに非表示にするナビゲーションバーも実装しようとしています。これは私が上にスクロールしたら[OK]作品(ナビゲーションバーのフェードを隠さまでアニメーション化)

override func viewDidAppear(_ animated: Bool) { 
     navigationController?.hidesBarsOnSwipe = true 
    } 

が、私は戻って、ナビゲーションバーの下にスクロールすると戻りません:私は、ビューコントローラにこのコードを追加しました。私はそれが何とかウィンドウの上部に固定されている画像によって隠されていると仮定します。しかし、どのようにしてナビゲーションバーを調整/再接続できますか?

Xcodeの9 - SWIFT 4

+0

可能重複https://stackoverflow.com/questions/40667985/how-to-hide-the-navigation-bar-and-toolbar-as-scroll-down-swift-like-mybridge/40670196# 40670196 – Joe

答えて

0

は助けかもしれない以下のコードで試してみてください。

delegateUIScrollViewとし、scrollViewDidScroll代理人メソッドを実装する必要があります。

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let scrollOffset: Float = Float(scrollView.contentOffset.y) 
    if scrollOffset < 0 { 
     navigationController?.hidesBarsOnSwipe = false 
     navigationController?.setNavigationBarHidden(false, animated: true) 
    } 
    else { 
     navigationController?.hidesBarsOnSwipe = true 
    } 
} 
+0

これはあまり効果がありません。スクロールダウンしてもスクロールバーがうまく滑り落ちることはありませんが、一度スクロールしてしまえば、突然全高に表示されます。 – Lee

+0

私は自分のロジックをあなたの要件に従ってカスタマイズすることができます。 – iPatel

関連する問題