Как получить веб-вид с такой же шириной экрана? - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу показать офлайн 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];
}

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018

Если ваше приложение поддерживает iOS 8+, используйте WKWebView вместо UIWebView, поскольку оно устарело.

WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
webView.navigationDelegate = self;
0 голосов
/ 01 сентября 2018

Да, вы должны использовать WKWebView, как упомянуто @ SH_Khan

Вот код 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)
    }
}
0 голосов
/ 01 сентября 2018

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...