1

在我的 iOS 应用程序中,我在另一个视图中定义了三个 Web 视图。可能并不总是使用其中两个 Web 视图,那么有没有办法让剩余的视图填满屏幕的其余部分?当您使用“fill_parent”时,android 中的等价物。

现在我正在通过改变框架来完成这一切,这真的很麻烦。

// 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

除了在值中进行硬编码之外,您还可以放入一些代码来查看正在显示的内容的大小并从中计算您的视图需要的大小。它可能看起来像:

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 回答
0

如果你想让你的应用需要 iOS 6,你可以使用自动布局来做到这一点。

如果你想在 iOS 5 上运行,你必须在代码中完成。

于 2012-09-13T20:17:32.773 回答