Yin*_*ing 3 rotation uiinterfaceorientation ios
我需要一个视图控制器(在ipad上)共享两种模式,一种是纵向模式,另一种是横向模式.实际上,我非常想模仿UISplitViewController的功能,但我希望能够使用不作为顶级视图控制器.除了HIG指南之外,我有一个普遍的问题,我认为任何在方向之间切换视图的人都会遇到.
1)为了提供视图之间的平滑过渡,我想在willRotateToInterfaceOrientation:duration中调用我的视图更改(和动画),而不是didRotateToInterfaceOrientation方法.问题是,在这个阶段,视图框架和边界尚未更改为新的视图框架和边界,因此您最终必须手动设置框架,如:
subview.frame = CGRectMake(0,0,320,768);
Run Code Online (Sandbox Code Playgroud)
也许是:而不是更好的东西:
subview.frame = CGRectMake(0,0,320, self.view.frame.height);
Run Code Online (Sandbox Code Playgroud)
2)此外,即使您尝试这样的恶作剧,如果视图自动调整其子视图,您仍然无处可去.如果禁用子视图的自动调整,那么这样的东西甚至不再起作用了:
subview.frame = self.view.frame; //because then you'd have to always specify the exact rect.
Run Code Online (Sandbox Code Playgroud)
有没有人有任何见解可以提供这个?
谢谢!
请尝试使用willAnimateRotationToInterfaceOrientation:duration:.
此外,如果您在子视图上正确设置了自动调整遮罩,则无需关心主视图是否已经过调整.只需调整子视图的大小,使其适合主视图,因为它现在已经调整大小并且可以正常工作.
如果您没有(或不能)正确设置自动调整大小的掩码,那么您应该已经拥有代码来处理主视图layoutSubviews方法中的大小更改.因此,您不必非常关心主视图是否已经调整大小.
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |