Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
iPhone приложение в ландшафтном режиме, 2008 систем
Примечание: этот вопрос относится к 2008 году и сейчас представляет только исторический интерес.
Как лучше всего создать приложение iPhone, которое работает в ландшафтном режиме с самого начала, независимо от положения устройства?
Как программно, так и с помощью конструктора интерфейсов.
Только исторический ответ. Эффектно устарели:
Пожалуйста, обратите внимание, что этот ответ сейчас очень устарел.
Этот пост - всего лишь исторический курьез .
Потрясающая новость! Как обнаружил Эндрю ниже, эта проблема была исправлена Apple в 4.0+.
Казалось бы, что NO больше не нужно навязывать размер вида на каждом виде, и конкретная серьезная проблема ландшафта "only working the first time" была решена.
По состоянию на апрель 2011 года невозможно протестировать или даже построить что-либо ниже 4.0, поэтому вопрос является чисто историческим курьезом. Просто невероятно, сколько неприятностей это доставляло разработчикам так долго!
Вот оригинальное Обсуждение и решение. Сейчас это совершенно неуместно,поскольку эти системы даже не функционируют.
Очень трудно сделать эту работу полностью - есть по крайней мере три проблемы/ошибки в игре.
попробовать это .. конструктор интерфейсов ландшафтный дизайн
Обратите внимание, в частности, что там, где он говорит "and you need to use shouldAutorotateToInterfaceOrientation properly everywhere" , это означает везде, все ваши полноэкранные представления.
Надеюсь, это поможет в этом кошмаре!
Важное напоминание о хорошо известной проблеме ADDITIONAL здесь: Если вы пытаетесь переключиться между несколькими видами (все ландшафты), это просто не работает . Очень важно помнить об этом, иначе вы будете тратить дни на эту проблему. Это буквально невозможно. Это самая большая открытая, известная ошибка на платформе iOS. Нет буквально никакого способа заставить аппаратное обеспечение сделать второй вид, который вы загружаете, ландшафтным. Раздражающий, но простой обходной путь, и то, что вы должны сделать, - это иметь тривиальный мастер UIViewController, который ничего не делает, но сидит там и позволяет вам обмениваться мнениями.
Другими словами, в iOS из-за крупной ошибки know:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Вы можете сделать это только один раз . Позже, если вы попытаетесь удалить happyThing.view, а вместо этого поместите туда newThing.view, это не сработает - и все. Машина никогда не будет поворачивать вид на ландшафт. Нет никакого хитрого решения, даже Apple не может заставить его работать. Обходной путь, который вы должны принять, - это иметь общий UIViewController, который просто сидит там и просто придерживается ваших различных взглядов (happyThing, newThing и т. д.). Надеюсь, это поможет!
С сайта разработчика Apple:
Чтобы запустить приложение в альбомной ориентации режим так, чтобы строка состояния находилась в соответствующее положение немедленно, править ваш Info.plist файл для добавления UIInterfaceOrientation ключ с помощью соответствующая величина (UIInterfaceOrientationLandscapeRight или UIInterfaceOrientationLandscapeLeft), как показано в листинге 2.
Листинг 2: Запуск приложения в ландшафтном режиме
<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>
Резюме и интеграция из всех постов, после тестирования его самостоятельно; проверьте обновление для 4.x, 5.x ниже.
Начиная с 3.2 вы не можете изменить ориентацию запущенного приложения из кода.
Но вы можете запустить приложение с фиксированной ориентацией, хотя сделать это не так просто.
Попробуйте с этим рецептом:
- установите свою ориентацию на
UISupportedInterfaceOrientationsв файлеInfo.plist - в вашем окне определите 480x320 "base view controller". Каждое другое представление будет добавлено в качестве подвида к его представлению.
- во всех контроллерах представления настраивается метод
shouldAutorotateToInterfaceOrientation:(чтобы вернуть то же значение, которое вы определили в plist, конечно) во всех контроллерах вида установите фоновый вид с помощью
self.view.frame = CGRectMake(0, 0, 480, 320)в методе
viewDidLoad.
Обновление (iOS 4.x, 5.x): руководство по программированию приложений Apple iOS содержит пункт "Launching in Landscape Mode" в главе "Advanced App Tricks".
Рекомендации:
Сначала я установил в info.plist
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
затем я ввел этот код в applicationDidFinishLaunching:
CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633);
[window setTransform:rotate];
CGRect contentRect = CGRectMake(0, 0, 480, 320);
window.bounds = contentRect;
[window setCenter:CGPointMake(160.0f, 240.0f)];
Таким образом, я могу работать с видом в Interface Builder в ландшафтном режиме.
ответ sasb и michaelpryor кажется правильным, но если это не работает для вас, попробуйте эту альтернативу:
- (void)applicationDidFinishLaunchingUIApplication *)application {
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
}
Или вот этот:
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
Или вот этот:
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
Возможно, Вам также придется сначала позвонить в window makeKeyAndVisible; .
Несколько ссылок: разработка в ландшафтном режиме, iPhone SDK: как заставить только ландшафтный режим?
@Robert: пожалуйста, обратитесь к iPhone SDK, NDA и переполнению стека .
Я удивлен, что никто еще не придумал этот ответ:
Во всех моих тестах при отклонении модального контроллера вида предпочтительная ориентация родительского контроллера вида, установленная в shouldAutorotateToInterfaceOrientation , соблюдается даже при наличии части UINavigationController. Так что решение этой проблемы очень простое:
Создайте фиктивный UIViewController с UIImageView в качестве фона. Установите для изображения значение default.png, которое ваше приложение использует при запуске.
Когда viewWillAppear вызывается в вашем корневом контроллере вида, просто представьте фиктивный контроллер вида без анимации.
когда viewDidAppear вызывается в вашем фиктивном контроллере вида, отключите контроллер вида с хорошей анимацией перекрестного растворения.
Это не только работает, но и хорошо выглядит! BTW, просто для уточнения я делаю корневой контроллер вида viewWillAppear вот так:
- (void)viewWillAppear:(BOOL)animated
{
if ( dummy != nil ) {
[dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:dummy animated:NO];
[dummy release];
dummy = nil;
}
...
}
В последнем руководстве по программированию ОС iPhone есть полный раздел об этом, с примерами кода. Я уверен, что это недавнее дополнение, так что, возможно, вы его пропустили. Это объясняет все условия, которые вы должны соблюдать; в основном...
- установите свойства Info.plist (это изменяет положение строки состояния, но не вид)
- вращать вручную вокруг своего центра, по вашему UIViewController viewDidLoad: метод или applicationDidFinishLaunching: метод или реализовать автоматический поворот ("функциями автоматического изменения поведения", стр. 124)
Найдите "запуск в ландшафтном режиме", стр. 102.
Смотрите этот ответ: ландшафтный режим ONLY для iPhone или iPad
- добавить ориентацию в plist
- shouldAutorotateToInterfaceOrientation = YES во всех файлах
Хотя, если вы используете смешанные режимы, вам может быть лучше с помощью
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];