[英]UIWebView in iOS
我正在創建一個應用程序,需要將一半的頁面作為webview,另一半需要填充其他內容。 問題是,當我在UI構建器中布局視圖時,它是正確的寬度和高度,但是當我實際加載它時,它會填滿整個屏幕。
這是代碼:
- (void)loadView
{
// Create a custom view hierarchy.
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
UIView *view = [[UIView alloc] initWithFrame:appFrame];
self.view = view;
[view release];
CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
webView = [[UIWebView alloc] initWithFrame:webFrame];
webView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:webView];
NSString *html = @"<html><head><title>Should be half</title></head><body>I wish the answer were just 42</body></html>";
[webView loadHTMLString:html baseURL:nil];
}
您不需要大部分代碼。 一般來說,您可以在loadView
編程方式創建視圖層次結構,也可以使用Interface Builder以圖形方式創建視圖層次結構。 你已經完成了兩件事 - 你已經在Interface Builder中創建了你的視圖,然后將它全部拋棄並以編程方式再次完成。
完全刪除你的loadView
方法。 這就是擦除Interface Builder工作的原因。 默認的loadView
實現將反序列化您的nib並從中創建視圖層次結構。
確保您的webView
IBOutlet已在Interface Builder中連接。 這是您的代碼可以引用筆尖中的內容的方式。 當nib被反序列化時,它將存儲你在這個ivar中的Interface Builder中布局的UIWebView
實例。
創建一個用於設置Web視圖的viewDidLoad
方法。 加載nib文件並構建視圖層次結構后,將調用此方法,因此所有視圖都有效,您可以執行將HTML加載到Web視圖中的操作。 你會想要這樣的東西:
- (void)viewDidLoad
{
NSString *html = @"<html><head><title>Should be half</title></head><body>I wish the answer were just 42</body></html>";
[webView loadHTMLString:html baseURL:nil];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.