OC 30 day
我們來延續上一篇網路請求原理做出UIWebView吧
鑑於單一職責,把網路請求做成一個方法。
-(NSURLRequest *) makeURLRequest{
//發送請求
NSURL *url = [NSURL URLWithString:@"https://tw.yahoo.com"];
//請求
NSURLRequest *request = [NSURLRequest requestWithURL:url];
return request;
}
-(void)makeWebView:(NSURLRequest *)request{
self.webView = [[UIWebView alloc]init];
[self.webView loadRequest:request];
[self.view addSubview:self.webView];
[self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.topMargin);
make.left.right.bottom.equalTo(self.view);
}];
}
注意,這邊的約束是用Masonry做的。
另外值得注意的是,topMargin,他幫我們將view侷限在safe area之中。
你會發現,這塊UIWebView並不侷限在特定的Request,如果今天要顯示的是不同的頁面,我也可以輕鬆的抽換。
試試看
NSURLRequest *urlRequest = [self makeURLRequest];
[self makeWebView:urlRequest];
來試試看製作出來的效果吧~
'UIWebView' is deprecated: first deprecated in iOS 12.0 - No longer supported; please adopt WKWebView.
因為在iOS 12.0 之後,他將不支援,那怎麼辦呢?
這個是IOS8之後新增的一個類,也是蘋果推崇的一個新的類。
#import <WebKit/WebKit.h>
import這個Kit
-(void)makeWebView:(NSURLRequest *)request{
WKWebView *webView = [[WKWebView alloc] init];
[webView2 loadRequest:request];
[self.view addSubview:webView2];
[webView2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.topMargin);
make.left.right.bottom.equalTo(self.view);
}];
}
就可以解決版本支援的問題囉。