2014-09-24 2 views
1

Я пытаюсь создать игру iOS (Swift, SpriteKit), которую можно воспроизводить только в портретной ориентации. Проблема заключается в том, что даже при том, что приложение загружается в портрет и не может быть повернуто, в соответствии с размером кадра мое приложение считает, что оно в ландшафте. Таким образом, приложение находится в портрете, но я получаю «Высота: 768, Ширина: 1024».iOS Swift неправильная ориентация игры

Это обычный код для вращения, что у меня есть в моем приложении:

override func shouldAutorotate() -> Bool { 
    return false 
} 

override func supportedInterfaceOrientations() -> Int { 
    return Int(UIInterfaceOrientationMask.Portrait.toRaw()) 
} 

И каждое место в приложении, которое запрашивает для ориентации устройства я положил на портрет (Info.plist файл, Main. раскадровка и т. д.). Я искал это и нашел некоторое решение примерно год назад, когда вместо обычного метода viewDidLoad вы ставили «viewWillLayoutSubviews()», но он не работает.

У кого-нибудь еще есть эта проблема, и кто-нибудь может рассказать мне, как ее исправить?

+0

выберите цель вашего проекта и просто проверьте параметр «Портрет» и внутренний инспектор открытых раскадровников и снимите флажок «Использовать размер классов», и теперь ваша игра должна иметь размер экрана iphone, и ваша игра должна работать на портрете –

+0

Нет, это не Это. Он по-прежнему печатает, что ширина составляет 1024 и высота составляет 768 –

+0

. См. Статью, которую стоит посмотреть на: http://stackoverflow.com/questions/24219616/ipad-shows-at-portrait-but- думает, его-ландшафт –

ответ

1

Хорошо, я узнал, что случилось. Размер сцены в файле GameScene.sks должен быть установлен в разрешении по умолчанию, и после этого вам нужно сохранить его (cmd + S). Если вы его не сохраните, и вы просто его построите, размер экрана в файле покажет разрешение на портрете, которое вы ввели, но оно будет помнить предыдущее разрешение и все еще действовать как ландшафтное приложение, даже если ориентация устройства - портрет ,