繁体   English   中英

iOS中的UIWebView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM