在我的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使用屏幕的其余部分而无需显式设置框架?

最佳答案

除了对值进行硬编码之外,您还可以在其中添加一些代码,以查看所显示内容的大小,并根据该大小计算视图的大小。它可能看起来像:

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);

这种方法仍然有点笨拙,但是如果您将来要调整大小,它会更好一些。

编辑:我清理了语法,它现在应该正确。

10-08 05:49