iOS中的UIWebView

3

我正在创建一个应用程序,需要将页面的一半作为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];  
}  
1个回答

4
您不需要大部分的代码。一般来说,您可以在loadView中以编程方式创建视图层次结构,或者使用Interface Builder以图形方式创建视图层次结构。您已经两种方法都用过 - 您已经在Interface Builder中创建了视图,然后全部删除并以编程方式重新创建。
完全删除您的loadView方法。这就是抹掉您Interface Builder工作的原因。默认的loadView实现将反序列化您的nib并从中创建您的视图层次结构。
确保在Interface Builder中连接您的webViewIBOutlet。这是您的代码引用nib中内容的方式。当nib被反序列化时,它将在此ivar中存储您在Interface Builder中布局的UIWebView实例。
创建一个viewDidLoad方法来设置web视图。一旦您的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];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接