IPad Screen Landscape to Portrait Conversion以编程方式使用Xib文件

时间:2015-02-06 11:24:01

标签: ios iphone ipad

我有一个用#34; xib"制作的Ipad应用程序。文件这是横向模式我希望这支持"风景和肖像"我想以编程方式 我写这个代码它正在工作,但有些错误 当我运行应用程序时它没有检测到它是横向还是纵向如果我改变到另一个方向这个方法正在工作,调用和工作也有任何我必须给予的东西

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    if (size.width == 768) {
        [self portrait]; // collection of Components with Portrait Size
        self.forced = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];

    } else if (size.width == 1024){
        [self landscape]; // collection of Components with Portrait Size
        self.forced = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
    }
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
-(void)portrait
{
    _mLogo.frame = CGRectMake(20, 40, 200, 80);
    _mCodeTF.frame = CGRectMake(240, 65, 200, 30);
    _mEnterBtn.frame = CGRectMake(470, 65, 50, 30);
    adonLogo.frame = CGRectMake(550, 40, 200, 80);
    _mView.frame = CGRectMake(20, 155, 730, 830);
    _mThumbnilScroll.frame = CGRectMake(0, 0, 730, 830);
}

-(void)landscape
{
    _mCodeTF.frame = CGRectMake(355, 70, 270, 30);
    _mLogo.frame = CGRectMake(45, 31, 255, 110);
    _mEnterBtn.frame = CGRectMake(670, 70, 70, 30);
    adonLogo.frame = CGRectMake(755, 31, 255, 110);
    _mView.frame = CGRectMake(12, 160, 995, 575);
    _mThumbnilScroll.frame = CGRectMake(0, 0, 995, 575);
}

1 个答案:

答案 0 :(得分:0)

enter code here使用

 – willRotateToInterfaceOrientation:duration:

– didRotateFromInterfaceOrientation: 

而不是viewWillTransitionToSize...

一方将获得新方向,另一方将获得旧方向。 使用窗口的尺寸,高度或尺寸。对于这个例子来说不是一个好主意,或者至少不是通过简单地使用==运算符。