我的代码中有很多地方需要根据UIViewController
. 例如,我在 nib 中有一个视图,然后我在代码中捕获它并用于为另一层创建蒙版,但我需要等到蒙版视图及其子视图具有正确的大小才能这样做。
我发现,虽然很hacky,但我可以通过创建一个每次viewDidLayoutSubviews
调用时递增的计数器来实现这一点,并在第二次调用它时触发我希望执行的代码 - 由于某种原因,大多数视图都有尚未正确布置自己,直到viewDidLayoutSubviews
第二次被召唤。
就像我说的,这看起来很老套,而且 iOS 更新很有可能会破坏我的代码。有没有人有更好的方法来做到这一点?
- (void)viewDidLoad
{
[super viewDidLoad];
self.layoutCount = 0;
}
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.layoutCount ++;
if (self.layoutCount == 2)
{
// perform final layout code, e.g. create masks
}
}