如何在滚动iOS上显示导航栏

时间:2018-03-03 13:40:29

标签: ios swift uinavigationbar

我找到了很多关于如何在滚动条上隐藏导航栏的资源,但是我想在开始时隐藏导航栏,然后在开始滚动时出现。就像来自Design + Code app的这个动画:https://imgur.com/a/SqDRD

2 个答案:

答案 0 :(得分:1)

您可以使用UIScrollViewDelegate

以下是隐藏导航栏和带滚动的工具栏的示例代码:

import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet weak var toolBar: UIToolbar!
    @IBOutlet weak var webV: UIWebView!
    var lastOffsetY :CGFloat = 0
    override func viewDidLoad() {
        super.viewDidLoad()

        webV.scrollView.delegate = self
        let url = "http://apple.com"
        let requestURL = NSURL(string:url)
        let request = NSURLRequest(URL: requestURL!)
        webV.loadRequest(request)
    }

    //Delegate Methods
    func scrollViewWillBeginDragging(scrollView: UIScrollView){
        lastOffsetY = scrollView.contentOffset.y
    }

    func scrollViewWillBeginDecelerating(scrollView: UIScrollView){

        let hide = scrollView.contentOffset.y > self.lastOffsetY
        self.navigationController?.setNavigationBarHidden(hide, animated: true)
        toolBar.hidden = hide
    }
}

答案 1 :(得分:1)

使用std::array<int[2][2], 2>willBeginDragging,您可以完成您想要的任务。这里有一个简化版本,你可能需要稍微修改它以获得你想要的效果,但这是一个起点。

didEndDragging