私はUIWebViewだけの単純なUIViewControllerを持っています。 UIWebViewは、URLのコンテンツを表示するために使用可能なすべての領域を取る必要があります。そのコンテナに基づいてUIViewControllerのプログラムによるサイズ変更
このViewControllerをさまざまな場所で再利用したいと思います。 NavigationControllerにプッシュされる場合もあれば、ModalViewControllerとして表示されるものもあります。場合によっては、TabBarControllerの内部にあることもあります。 UIWebViewのサイズは、場合によって異なります。
Interface Builderを使用せずにUIWebViewのフレームを設定する最も良い方法は何ですか?つまり、次のコードでwebViewFrameをどのように初期化する必要がありますか?それとも、私は行方不明ですか?
- (void)viewDidLoad {
[super viewDidLoad];
UIWebView* webView = [[UIWebView alloc] initWithFrame:webViewFrame];
webView.delegate = self;
NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[webView loadRequest:request];
[self.view addSubview:webView];
[webView release];
}
私は異なる可能性(self.view.frame、self.navigationController.view.frame、など)で試してみましたが、何もすべてのケースのために働くようです。
ありがとうございます!
迅速な返信ありがとう、ダレン。どちらのオプションも問題を解決します。 しかし、理解できないことがあります。自分のコード例でself.view.frameをwebViewFrameとして使用できないのはなぜですか? viewDidLoadでself.view.frameのサイズが適切であるべきですか? – hpique
viewDidLoadの後にself.viewがサイズ変更されます。実際、それは、いくつかの理由(例えば、進行中のタイトルバー)のために、いつでもリサイズすることができる。したがって、サブビューのサイズが正しく変更されるように、常に自動サイズ変更マスクを設定する必要があります。 – Darren
興味深い。だから実際にviewDidLoadのself.viewの実際のフレームを知る方法はないのですか? – hpique