Ориентация изображения в didFinishLaunchingWithOptions - PullRequest
0 голосов
/ 10 января 2012

Я пытаюсь отобразить изображение в методе приложения (не в контроллере) didFinishLaunchingWithOptions (на самом деле это заставка).Мой код

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 640)];

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"];
} else {
    //doesn't matter for now
}

На самом деле изображение отображается, но оно начинается не с левого верхнего угла.Он отображается в портретном режиме, даже если эмулятор находится в ландшафтном режиме.

Даже если я инвертирую 1024 с помощью 640, это решит проблему.

Хотите отображать всплеск всегда в ландшафтном режиме.

Ответы [ 3 ]

0 голосов
/ 10 января 2012

Вам необходимо установить свойство autoresizingMask для вашего изображения -

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 640)];
    splashView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"];
} else {
     //doesn't matter for now
}
0 голосов
/ 11 января 2012

или, вы можете просто отправить изображения в информацию о развертывании

я не знаю о xcode ниже 4.2

но если вы используете 4.2, вы можете сделать это

  • перейдите в навигатор проекта> ваш проект
  • выберите цель> ваш проект> резюме
  • под информацией о развертывании iPad найдите вкладку «Запуск изображений» и щелкните правой кнопкой мыши «портрет» или «пейзаж», чтобы выбрать изображение для отправки

надеюсь, это поможет;)

0 голосов
/ 10 января 2012

Попробуйте следующее.Ширина и высота могут быть неправильными, поэтому просто переключайте их

#define HEIGHT 1024
#define WIDTH 640

( ... )

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

    UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
    if (orientation == UIDeviceOrientationPortrait) {
        splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, HEIGHT, WIDTH)];
    } else if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight) {
        splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
    }

    splashView.image = [UIImage imageNamed:@"splashipad.jpg"];
} else {
    //doesn't matter for now
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...