0

我刚开始为一个 iOS 项目做贡献,并注意到这种反复出现的模式:

// This takes place in the superview
// This is the first access of subviewController.view,
// so the subview controller will create its view
// Then we'll immediately resize it to our desired frame
subviewController.view.frame = CGMakeRect(x, y, width, height);

对我来说,子视图的控制器创建具有特定帧大小的子视图只是让超级视图立即调整它的大小,这对我来说似乎很奇怪/效率低下。

我是否缺少其他一些设计模式,它允许超级视图从一开始就将所需的大小传递给子视图,所以这种立即调整大小是不必要的?

显然,子视图控制器可能只有一个特殊的方法,它将大小作为参数,但我想知道这是否是犹太/常见模式。

4

1 回答 1

1

在哪里创建子视图,而不是使用init方法创建,您总是可以使用initWithFrame. 顺便说一句,我们是在谈论控制器的主视图吗?然后,您可以在编译项目之前始终从界面生成器中设置视图大小。

但是,如果应用程序需要在每次启动时动态更改子视图,那么当前的执行方式是唯一的选择。

于 2012-06-23T23:00:46.137 回答