如何获得具有相同屏幕宽度的 Web 视图?
Posted
技术标签:
【中文标题】如何获得具有相同屏幕宽度的 Web 视图?【英文标题】:How to have a web view with the same width of screen? 【发布时间】:2018-09-01 06:54:32 【问题描述】:我想在 Web 视图中显示离线 html。我希望网络视图高度与视图高度相同(它应该涵盖屏幕宽度)。它的高度与内容高度相同。我应该如何更改initWithFrame
?
- (void)viewDidLoad
[super viewDidLoad];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 400, 400)];
NSString *htmlTxt = [[NSUserDefaults standardUserDefaults]
stringForKey:@"HTML"];
[webView loadHTMLString: htmlTxt baseURL:nil];
[self.view addSubview:webView];
【问题讨论】:
【参考方案1】:1- 使用 WKWebView
,因为 UIWebView
已弃用
2-
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame];
3- 内部
- (void)webViewDidFinishLoad:(UIWebView *)webView
webview.frame = CGRectMake(0.0, 0.0,self.view.frame.size.width,webview.contentSize.height);
【讨论】:
【参考方案2】:如果您的应用支持 ios 8+,请使用 WKWebView
而不是 UIWebView
,因为它已被弃用。
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
webView.navigationDelegate = self;
【讨论】:
【参考方案3】:是的,你应该使用@SH_Khan 提到的 WKWebView
如果您使用自动布局/约束,这里是相同的 Swift 代码
import WebKit
override func viewDidLoad()
super.viewDidLoad()
//let webView = UIWebView(frame: CGRect.zero)
let webView = WKWebView(frame: CGRect.zero)
webView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(webView)
view.bringSubviewToFront(webView)
webView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
webView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
webView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
if let htmlTxt = UserDefaults.standard.string(forKey: "HTML")
webView.loadHTMLString(htmlTxt, baseURL: nil)
【讨论】:
以上是关于如何获得具有相同屏幕宽度的 Web 视图?的主要内容,如果未能解决你的问题,请参考以下文章
我希望两个按钮具有相同的宽度并使用自动布局从屏幕顶部按比例在所有屏幕尺寸中定位自己?
在滚动视图中具有相同宽度和高度的三个 UIButton 上的自动布局