我想设计一个视图/视图控制器,在横向方向时自动显示/隐藏子视图。我希望子视图完全消失,其他子视图填补其空间。
使用一个UIViewController,我编写了一些代码,设置了子视图的frame属性,并在以下情况下调用它:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration;
这通常解决了大部分问题,但在视图未出现时发生方向更改时存在问题。为了解决这个问题,我还在以下情况下调用了调整大小的方法:
- (void)viewWillAppear:(BOOL)animated;
但是在某些罕见情况下(涉及UISearchDisplayController),这种方法存在问题,因此我也在调用调整大小的方法。
- (void)viewDidAppear:(BOOL)animated;
如您所理解的,我对这段代码感到不满,并正在寻找更好/更高效的方式来完成这个问题。
有任何想法吗?