2015-06-01 2 views
0

Я использую приложение на основе js с поддержкой ejecta kitchen. Моя проблема - это изображение, которое я установил на MainWindow, который отображает неправильную ориентацию или, другими словами, отображает фиксированную ориентацию. Мое приложение требует, чтобы все отображалось в ландшафтном режиме, но XIB-файл отображал вещи вверх ногами, когда меняю ориентацию моего IPAD.IOS XIB раскадровка Запуск Файл экрана отображает неправильную ориентацию изображения внутри

Я искал alot в Интернете, но пока не нашел возможного решения. Это единственный файл, у которого есть эта проблема, кроме этого мой файл index.html отлично работает, который построен на construct2.

Вот изображение, которое отображает иерархию моего окна и изображения

enter image description here

+0

Hey wolvorinePk, для вышеуказанной проблемы вам нужно повернуть свое изображение относительно окна, потому что UIWindow всегда будет давать единую ориентацию, а это портрет. – CodeChanger

+0

Я сделал, и это сработало, но предположим, что если пользователь поворачивает свой ipad сразу после этого экрана, тогда ориентация изображения отображается как вверх дном, кажется, что он автоматически фиксировал ориентацию. Как я могу решить эту проблему? – wolvorinePk

+0

Да, для этого вам нужно снова повернуть изображение в методе appDelegate «willChangeStatusBarOrientation» или «didChangeStatusBarOrientation». – CodeChanger

ответ

1

По вашему вопросу вы можете написать код, как показано ниже в методе AppDelegate.

- (void) application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation 
     duration:(NSTimeInterval)duration 
{ 
    if (newStatusBarOrientation == UIInterfaceOrientationPortrait) 
     yourImage.transform  = CGAffineTransformIdentity; 
    else if (newStatusBarOrientation == UIInterfaceOrientationPortraitUpsideDown) 
     yourImage.transform  = CGAffineTransformMakeRotation(-M_PI); 
    else if (UIInterfaceOrientationIsLandscape(newStatusBarOrientation)) 
    { 
     float rotate = ((newStatusBarOrientation == UIInterfaceOrientationLandscapeLeft) ? -1:1) * (M_PI/2.0); 
     yourImage.transform  = CGAffineTransformMakeRotation(rotate); 
     yourImage.transform  = CGAffineTransformTranslate(yourImage.transform, 0, -yourImage.frame.origin.y); 
    } 
} 

как показано выше, вы можете повернуть фоновое изображение.

+0

Я пробовал использовать выше код, и я объявляю UIImage, как UIImage * yourname = [UIImage ImageNamed: @ "mypicture.png"], но он дает ошибку, что свойство 'transform' не найдено на объекте типа UIImage ??? – wolvorinePk

+0

okay Я объявляю изображение в качестве yourImage и инициализирую изображение внутри. Но все же, когда я запускаю приложение, он отображается в неправильной ориентации. Мой XIB MainWindow похож на экран заставки, который должен отображаться в течение нескольких секунд, а затем он должен запускать файл index.js для игры html5. Считаете ли вы, что вышеуказанный метод не работает из-за каких-либо из моих упоминаний? – wolvorinePk

+0

Как вы упомянули, что используете html5 для дальнейшего процесса, но это не повлияет на какой-либо из нативного кода, вы отлаживаете свой код? попытайтесь отладить свой код с помощью предоставленного метода. , если этот метод не вызывается при изменении ориентации, чем ваше приложение поддерживает только одну ориентацию. или если этот вызов метода, проверьте, удовлетворяет ли это условие if-else или нет. – CodeChanger

Смежные вопросы