如何使用swift在webView中禁用水平滚动?
我有一个简单的如何使用swift在webView中禁用水平滚动?,swift,uiwebview,horizontal-scrolling,Swift,Uiwebview,Horizontal Scrolling,我有一个简单的webView像: @IBOutlet weak var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() let url = "https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref
webView
像:
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = "https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-XID_456"
let requestURL = NSURL(string:url)
let request = NSURLRequest(URL: requestURL!)
webView.loadRequest(request)
当我将此请求加载到webView时,它的加载非常好,但当它完全加载时,它会像这样水平滚动,当我从左侧和右侧滚动它时:
我不想这样滚动它,我只想它垂直滚动有没有任何方法可以在swift中这样做我在互联网上搜索,但只找到了objective-c的解决方案,我在swift中尝试,但没有工作
请为我提供任何解决方案。更新Swift 4 将这两种方法添加到UIViewController中:
func webViewDidFinishLoad(_ webView: UIWebView) {
self.webView.scrollView.showsHorizontalScrollIndicator = false
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (scrollView.contentOffset.x > 0){
scrollView.contentOffset = CGPoint(x: 0, y: scrollView.contentOffset.y)
}
}
在viewDidLoad方法中添加以下行:
webview.scrollView.delegate = self
webview.scrollView.showsHorizontalScrollIndicator = false
现在,此wld在第webview.scrollView.delegate=self
行显示错误,因此请确保像这样添加UIScrollViewDelegate
class DetailViewController: UIViewController, UIWebViewDelegate, UIScrollViewDelegate{
水平滚动已经停止:)很抱歉这么晚才回答,但您可以通过实现UIWebViewDelegate方法在数据加载完成后将可滚动大小设置为WebView scrollview来完成此操作 func webViewDidFinishLoad(webView:UIWebView) 您可以这样做: SWIFT 4:
func webViewDidFinishLoad(_ webView: UIWebView) {
let scrollableSize = CGSize(width: view.frame.size.width, height: webView.scrollView.contentSize.height)
self.webView?.scrollView.contentSize = scrollableSize
}
编辑:
func webViewDidFinishLoad(_ webView: UIWebView) {
let scrollableSize = CGSize(width: view.frame.size.width, height: webView.scrollView.contentSize.height)
self.webView?.scrollView.contentSize = scrollableSize
}
这里的关键是将webView scrollView宽度设置为主视图宽度,这将防止水平滚动
PS:别忘了采用UIWebViewDelegate协议
class myViewController: UIViewController,UIWebViewDelegate
并在viewDidLoad中设置webView代理
webView?.delegate = self
如果您来这里是想找到一种方法,让它完全不像我那样(水平或垂直)滚动,下面是一个在Swift 5中使用WKWebView的答案:
webView.scrollView.isScrollEnabled = false
谢谢你的回答,但它对我不起作用。你是否检查了我提出的问题的
URL
?你找到解决方案了吗?这对我也不起作用