Нижняя панель инструментов iPhone 5 (4 дюйма) не отвечает

Я пытаюсь изменить приложение для работы с новым экраном iPhone 5, 4 дюйма. Я добавил новое изображение запуска «[email protected]». После этого все выглядело хорошо. Средняя часть моих просмотров изменяет размер в порядке.

Однако я заметил, что в представлении, где у меня есть нижняя панель инструментов, кнопки на панели инструментов не реагируют. Выглядит нормально, но нажатие кнопок ничего не дает. Тот же код, запущенный в симуляторе с экраном 3,5 дюйма, работает нормально.

Есть идеи?

Это представление находится внутри навигационного контроллера. Он состоит из табличного представления и панели инструментов. Табличное представление настроено на изменение высоты.


person David    schedule 13.09.2012    source источник
comment
Вы проверяли рамки панели инструментов и ее супервью? Один из сценариев, в котором это происходит, — если дочернее представление находится за пределами своего суперпредставления контейнера. Дочернее представление (или панель инструментов в вашем случае) по-прежнему отображается, потому что родительское представление не обрезает содержимое за его пределами. Одним из простых способов проверки всей иерархии является вызов скрытого метода recursiveDescription для представления во время отладки, как в po [someParentView recursiveDescription].   -  person Anurag    schedule 14.09.2012
comment
Я думаю, что это то, что происходит, но я не понимаю, почему. Попробовав ваше предложение, размер выглядит правильно, пока я не доберусь до UIWindow, где указано 320x480. Все, что ниже, имеет разрешение 320x568.   -  person David    schedule 14.09.2012
comment
Большое спасибо, Анураг, ваш комментарий привел меня к решению аналогичной проблемы.   -  person lppier    schedule 29.12.2012
comment
проверьте эту ссылку, я решаю свою проблему с этим. :[перекрытие событий кнопки/инструмента] [1] [1]: stackoverflow.com/questions/12501976/   -  person shreeji    schedule 15.04.2013


Ответы (5)


У меня была та же проблема, и я заметил, что мой window.frame.size.height по-прежнему равен 480,0.

Эта проблема решена путем включения Полный экран при запуске для файла MainWindow.xib:

Шаги:

  1. Откройте файл MainWindow.xib.
  2. Выберите элемент Окно.
  3. Откройте Инспектор атрибутов.
  4. В разделе Окно включите Полноэкранный режим при запуске.
person Min Tsai    schedule 14.09.2012
comment
как я могу установить это программно? - person Mangesh; 01.04.2013
comment
Удивительно, этот один флажок... Кстати, кто-то попросил попробовать это в коде для равного эффекта, похоже, не работает - mainWindow.frame = [UIScreen mainScreen].bounds; - person Gmu; 16.09.2013
comment
Я стучал головой в течение последних двух дней с этим. Но благодаря вам .. Наконец-то решил мою проблему. - person Amrendra Pratap Singh; 02.12.2013

Есть два решения этой проблемы:

  1. Если вы используете MainWindow, выполните следующие действия:

    а. Выберите MainWindow.xib б. Выберите «Полный экран при запуске» из опции Windows, доступной в инспекторе атрибутов.

  2. Если ваше приложение не содержит MainWindow, просто добавьте «Self.View.Frame = [UIScreen mainScreen].bounds» в ViewDidLoad.

person Jayprakash Dubey    schedule 18.04.2013

Если в вашем проекте есть MainWindow.xib, вам необходимо установить все заставки, чтобы приложение было совместимо с дисплеем iPhone 5.

person Yashesh    schedule 02.01.2013

Мой проект не использовал MainWindow.xib. Я добавил следующее в viewDidLoad в View Controllers всех экранов:

self.view.frame = [UIScreen mainScreen].bounds;
person Sanjay Chaudhry    schedule 23.09.2012
comment
не сработало, выясните, как включить флаг для вашего главного окна в IB .. решает проблему. - person Gmu; 16.09.2013

Добавить

self.window.frame = [UIScreen mainScreen].bounds;

в этом методе:

-(BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary*)options 

в вашем %your app name%AppDelegate.m файле

person abbood    schedule 25.07.2013