手动旋转

时间:2014-08-31 17:05:27

标签: ios

我的应用程序的用户界面相当复杂,同时支持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,一切正常。我只是简单地拖动两个视图就可以了,因为它们都由同一个控制器处理。那么我该怎么做我的故事板?

0 个答案:

没有答案