(Xcode / Swift) 如何在UIWebView 向下滚动时隐藏工具栏?
(Xcode / Swift) How to hide toolbar when scrolling down UIWebView?
我的 ViewController 中有一个 UIWebView,我的 [= 中嵌入了一个导航控制器37=]。在我的导航控制器中,我选择了 "Show Toolbar" 和 "Hide Bars on Swipe" 但工具栏没有隐藏。它仅在使用工具栏选择 "Show Navigation Bar" 时有效。
向下滚动 UIWebView 时,滑动时是否可以隐藏 Toolbar?
先谢谢你。
您可以使用 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
}
}
我的 ViewController 中有一个 UIWebView,我的 [= 中嵌入了一个导航控制器37=]。在我的导航控制器中,我选择了 "Show Toolbar" 和 "Hide Bars on Swipe" 但工具栏没有隐藏。它仅在使用工具栏选择 "Show Navigation Bar" 时有效。
向下滚动 UIWebView 时,滑动时是否可以隐藏 Toolbar?
先谢谢你。
您可以使用 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
}
}