2011-01-24 3 views
3

私は、ページの半分がwebviewになり、残りの半分が他のもので埋められるようにするアプリケーションを作成しています。問題は、UIビルダでビューをレイアウトすると正しい幅と高さですが、実際にロードすると画面全体が塗りつぶされるということです。あなたがこのコードのほとんどを必要としないiOSのUIWebView

- (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]; 
} 

答えて

4

は、ここでは、コードです。一般に、loadViewにプログラムでビュー階層を作成するか、Interface Builderを使用してグラフィカルに行います。あなたは両方をやったことがあります - あなたはInterface Builderであなたのビューを作成し、それをすべて投げ捨て、プログラムでもう一度やり直しました。

loadViewメソッドを完全に削除します。これがInterface Builderの作業を拭き取っているところです。デフォルトのloadViewの実装は、あなたのペン先をデシリアライズし、そこからビュー階層を作成します。

webView IBOutletがInterface Builderで接続されていることを確認してください。これはあなたのコードがペン先にあるものを参照する方法です。ペン先が脱直列化されると、インタフェースビルダーに配置されたUIWebViewインスタンスがこのivarに格納されます。

ウェブビューを設定する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]; 
} 
関連する問題