правильно масштабировать изображение и ориентацию кнопок для ландшафтного и портретного режимов iPad

Разработано приложение для iPad, которое хорошо выглядит в портретном режиме. Например: портретный режим

Но, не очень хорошо выглядит в ландшафтном режиме. Ландшафтный режим

Как сделать это правильно? У меня включена опция авторазметки...

Примечание. Я добавляю фоновое изображение как

self.view.backgrounfcolor = [UIColor colorwithparttenimage:[UIImage imageNamed:@"ems.png"]];

person bapi    schedule 02.12.2013    source источник
comment
1-я установка для Uiориентации. 2. Измените их рамку в соответствии с ориентацией ИЛИ создайте два представления. Загрузите соответственно.   -  person Kumar KL    schedule 02.12.2013
comment
1-я установка для Uiориентации. 2. Измените их рамку в соответствии с ориентацией -> Как это сделать. Пожалуйста, предоставьте мне пример кода или любую ссылку.   -  person bapi    schedule 02.12.2013
comment
Ознакомьтесь с этим руководством raywenderlich.com/50317. /   -  person Kalpesh    schedule 02.12.2013
comment
@Kalpesh, я имел в виду это, но не получил никакой помощи от этого.   -  person bapi    schedule 02.12.2013
comment
если вы хотите сделать это программно, используйте этот метод - (void) willRotateToInterfaceOrientation: (UIInterfaceOrientation) продолжительность ориентации: (NSTimeInterval) продолжительность   -  person Kalpesh    schedule 02.12.2013
comment
@bapi: посмотри мой ответ. это не способ дать ответ. Но я не могу объяснить вам с нуля здесь .. извините .. Вам просто нужно понять, как это работает ..   -  person Kumar KL    schedule 02.12.2013


Ответы (1)


Вот только для справки. просто скопировал и вставил из моего репозитория. Измените соответственно.

-(void)viewWillAppear:(BOOL)animated{
    [[self navigationController] setNavigationBarHidden:YES animated:NO];

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [self orientationChanged:(UIInterfaceOrientation)[[UIDevice currentDevice]orientation ]];

}

-(BOOL) supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

-(BOOL) shouldAutorotate{
    return YES;
}

-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    [self orientationChanged:toInterfaceOrientation];
}


-(void) orientationChanged: (UIInterfaceOrientation)orientation{

    if(orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown){
        NSLog(@"Changed Orientation To Portrait");
       // self.viewPortrait.hidden = NO;
     //   self.viewLandscape.hidden = YES;
         [self portraitOrientation];
    }

    else if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight){
        NSLog(@"Changed Orientation To Landscape");
        //self.viewPortrait.hidden = YES;
        //self.viewLandscape.hidden = NO;

         [self landscapeLeftOrientation];
        /*
         if(deviceOrientation ==UIInterfaceOrientationLandscapeLeft){
         NSLog(@"Changed Orientation To Landscape left");
         [self landscapeLeftOrientation];
         }else{
         NSLog(@"Changed Orientation To Landscape right");
         [self landscapeRightOrientation];
         }
         */

    }

}
-(void)landscapeLeftOrientation{

    // Rotates the view.
    NSLog(@"LandscapeLeft");

    CGAffineTransform transform = CGAffineTransformMakeRotation(0);
    self.view.transform = transform;
    // Repositions and resizes the view.
    CGRect contentRect = CGRectMake(0, 0, 480, 320);
    self.view.bounds = contentRect;
    self.view.bounds = contentRect;

    self.img.center = CGPointMake(256, 23);
    self.btnHome.center = CGPointMake(437.0f, 23.0f);
    self.messageList.frame = CGRectMake(54, 54, 405,200);
    self.txtMessage.frame = CGRectMake(26, 262, 355, 30);
    self.btnSendMsg.frame = CGRectMake(399, 262,61,32);
}

-(void)portraitOrientation{

    // Rotates the view.
    CGAffineTransform transform = CGAffineTransformMakeRotation(0);
    self.view.transform = transform;
    // Repositions and resizes the view.
    CGRect contentRect = CGRectMake(0, 0, 320, 480);
    self.view.bounds = contentRect;

    self.img.center = CGPointMake(160.0f, 24.0f);
    self.btnHome.center = CGPointMake(277.0f, 24.0f);
    self.messageList.frame = CGRectMake(3,49, 341,321);
    self.txtMessage.frame = CGRectMake(3, 378, 235, 30);
    self.btnSendMsg.frame = CGRectMake(256, 378,61,32);

}
person Kumar KL    schedule 02.12.2013
comment
@bapi: посмотри мой ответ. это не способ дать ответ. Но я не могу объяснить вам с нуля здесь .. извините .. Вам просто нужно понять, как это работает - person Kumar KL; 02.12.2013