1

私のiOSアプリでは、別のビュー内に3つのWebビューが定義されています。2つのWebビューが常に使用されるとは限らないので、残りのビューに画面の残りの部分を埋めるように依頼する方法はありますか?androidでの同等の機能は、「fill_parent」を使用する場合です。

今、私は本当に面倒なフレームを変更することによってそれをすべてやっています。

// There is no top banner, but it does use the footer
topBannerView.frame = CGRectMake(0, 0, 320, 0);
mainView.frame = CGRectMake(0, 0, 320, 400);
footerView.frame = CGRectMake(0, 400, 320, 60);

フレームを明示的に設定せずに、mainViewに画面の残りの部分を使用させる方法はありますか?

4

2 に答える 2

0

アプリにiOS6を要求させる場合は、自動レイアウトを使用してこれを行うことができます。

iOS 5で実行する場合は、コードで実行する必要があります。

于 2012-09-13T20:17:32.773 に答える
0

値をハードコーディングする代わりに、表示されているもののサイズを調べ、そこからビューに必要なサイズを計算するコードを挿入することもできます。次のようになります。

if(!topBannerView.hidden)
{
  topBannerHeight = topBannerView.bounds.size.height; //syntax here might be a little off, can't test code right now, but I think it's close to this
}
else
{
  topBannerHeight = 0;
}

他の2つのビューについて繰り返し、次に

topBannerView.frame = CGRectMake(0, 0, 320, topBannerHeight);
mainView.frame = CGRectMake(0, topBannerHeight, 320, mainViewHeight);
footerView.frame = CGRectMake(0, (mainViewHeight+topBannerHeight), 320, footerViewHeight);

この方法はまだ少し不格好ですが、将来的にサイズを変更したい場合は少しうまく機能します。

編集:構文をクリーンアップしました。これで正しいはずです。

于 2012-09-13T21:08:29.927 に答える