我的应用程序的用户界面相当复杂,同时支持Portrait&横向方向(不包括PortraitUpsideDown)。有两个视图控制器,因此有两个视图。第一个代表Portrait UI,另一个代表Landscape。两个控制器都与同一个类相关。我为每种方向创建了两个Outlet,为其他UI对象创建了几个Outlet Collections。我用于动画旋转的代码如下。
这是我宣布这些属性的方式。
@property (strong, nonatomic) IBOutlet UIView *landscape;
@property (strong, nonatomic) IBOutlet UIView *portrait;
动画的过程。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if(toInterfaceOrientation == UIInterfaceOrientationPortrait) {
self.view = self.portrait;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadius(0));
self.view.bounds = CGRectMake(0.0, 0.0, 320.0, 568.0);
} else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
self.view = self.landscape;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadius(-90));
self.view.bounds = CGRectMake(0.0, 0.0, 568.0, 300.0);
} else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
self.view = self.landscape;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadius(90));
self.view.bounds = CGRectMake(0.0, 0.0, 568.0, 300.0);
}
}
问题在于第二个(风景)视图既不在旋转时也不在视图加载时存在。我用作示例的代码示例由于此问题而无法为我工作。除了我理解的东西,第二个视图没有自动加载,我应该在我的ViewController中做一些事情......
请帮我解决这个问题!提前谢谢!
P.S。使用简单的.XIB文件管理UI,一切正常。我只是简单地拖动两个视图就可以了,因为它们都由同一个控制器处理。那么我该怎么做我的故事板?