我遇到了一个问题,表明我可能不正确地实现了设计模式。我有动态子视图,其大小取决于语言。当我呈现一个模态视图时,我在 viewDidLoad 期间设置了布局。我注意到 UILabel 对象没有正确显示,并发现问题在于 viewDidLoad 期间模态视图的大小与显示视图时的大小不同。
viewDidLoad 期间模态视图的宽度为 768。视图出现后,宽度为 540。
这表明我应该在 viewWillAppear 期间设置布局,而不是在 viewDidLoad 期间。
这似乎与我对 DRY 原则的理解相矛盾,如果我将其应用于执行,因为一旦加载视图,布局就不会改变,所以每次视图出现时我都会不必要地重复布局代码。(我知道在我的示例中,语言设置可以在模态演示之间更改,但可能还有其他示例不存在这种类型的动态。)
我以同样的方式在非模态视图中实现布局——在 viewDidLoad 中。
我应该以不同的方式做这件事吗?