Экран с альбомной ориентацией смещен вправо на 20 пикселей - PullRequest
1 голос
/ 19 февраля 2010

Я пытаюсь повернуть экран на iphone.Например, первое состояние экрана: «Портрет».Затем он вызывает экран «Пейзаж».Для создания экрана Пейзаж используется следующий код:

- (void)viewDidLoad {
    [super viewDidLoad];
    [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
    CGFloat angle = 90 * M_PI / 180;
    self.view.transform = CGAffineTransformMakeRotation(angle);
    self.view.center = [nRangeAppDelegate sharedAppDelegate].window.center;
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 480, 44)];
    label.textAlignment = UITextAlignmentLeft;
    label.numberOfLines = 2;
    label.text = @"12345\n67890";
    [self.view addSubview:label];
}

Но указанный выше код смещен вправо на 20 пикселей.

Как сделать просмотр 480x320 в точке 0,0 без смещения?

Заранее спасибо.

Обновление:

Приложение, основанное на навигации по моему приложению.Все контроллеры UIView имеют один UIView.При вызове представления, которое я пытаюсь повернуть, используется этот код: MyRoratedController * myCtrlr = [[MyRoratedController alloc] initWithNibName: @ "MyRoratedController" bundle: nil];[navigationController pushViewController: myCtrlr animated: NO];Я изменил CGPointMake (160.0, 240.0) многими разными значениями.Но без изменений.

1 Ответ

0 голосов
/ 19 февраля 2010

Ваше окно смещено, потому что окно appDelegate не отцентрировано на экране, как показано ниже строки состояния

Попробуйте:

self.view.center = CGPointMake(160.0, 240.0);

Вы должны убедиться, что добавляетеэто представление для обычного viewcontroller (т.е. не для контроллера nav или аналогичного).Самый простой способ сделать это - добавить его в главное окно приложения, например так:

MyRoratedController *myCtrlr = [[MyRoratedController alloc] 
  initWithNibName:@"MyRoratedController" bundle:nil]; 
[window addSubview:[myCtrlr view]];

Обратите внимание, что если в вашем приложении отображается строка состояния, вам придется изменить значение 160 выше на 150 * 1009.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...