2012-02-17 12 views
4

私はストーリーボードでのナビゲーションコントローラに組み込まれているクリーンのUIViewController内のUIWebViewを追加しようとしています:ナビゲーションバーなしでUIViewの高さを取得する方法は?

UIWebView *webView =[[UIWebView alloc] initWithFrame:self.view.bounds)]; 
webView.delegate = self; 
[self.view addSubview:webView]; 

問題は、self.view.bounds.size.heightが460であること、ですこれはナビゲーションバーを含むビュー全体の高さのようです。私は20ですself.view.frame.origin.yの値を差し引くと440の所望の絶頂を得るが、これを行うために、より一般的な方法があるだろうか?

EDIT

ここに私の小さなコードの例を見てみてください:http://uploads.demaweb.dk/WebViewTest.zipあなたがのUIWebViewの一番下までスクロールし

、ウェブサイトの最後の部分は以下のように、示されていませんwebViewは高くなります。 !

[ここに画像の説明を入力] [1]

+0

は** [WebViewの自己addSubview]をしていますか?それはビューコントローラにありますか? – sch

答えて

2

ソリューション

は私の問題解決:

self.autoresizingMask = UIViewAutoresizingFlexibleWidthを| UIViewAutoresizingFlexibleHeight;

+0

これは私のために働いた320PXます。副次的なこととして、viewWillAppearでフレームを設定する別の解決策は、ビューフレームがviewDidLoad以前のものであることが保証されていないためです – Sam

0

デフォルトの高さは460、480である - ステータスバーのない高さ。 44px - ナビゲーションバーの高さ(UIView - navBar.frame.size.heightなのでheightにアクセスできます)。したがって、視野の高さは480-20-44 = 416です。self.view.frame.size.heightから除外する必要があります。origin.y

+0

iphoneの風景でない限り。その後、34pxの高さです。 – DHamrick

+0

@DHamrickは、その後、最初の高さは:) – beryllium

0

心配はいりません。ナビゲーションコントローラは、その管轄下にあるビューコントローラのviewのサイズ変更を処理します。このビューのフレームをオーバーライドするには、そのビューのフレームをたとえば、そのスーパービューに他のサブビューを合わせるために小さくします。 UIWebViewでautoresizingMaskを設定

0

私はtopLayoutGuide(および必要に応じてbottomLayoutGuide)を使用するよりも、他のよりよい解決策を見つけていません。これらの制約を、コントローラのself.viewにビューを追加し、設定、ある

topself.topLayoutGuidebottomある

"H:|[view]|" 
"V:[top][view][bottom]" 

self.bottomLayoutGuideです。

例として、AutolayoutHelperconfigureViewController:fillWithSubView:方法を参照。 **実際にコンパイル;:

関連する問題