2013-10-25 4 views
0

Я работаю над старой базой кода, написанной с использованием Three20 (ack!). Теперь нам нужно иметь возможность развернуть это приложение на iOS7 и iOS6.iOS7 NavigationBar визуально растет от 44 до 64 точек каждый раз

В основном, он работает, но когда пользователь забирает и вызывает переключение между контроллерами представлений, панель навигации рисуется с помощью 44-точечной навигационной панели во время анимации перехода, но когда анимация заканчивается, она фиксируется до 64 точек.

Итак, переключите взгляд ... гладкое ... масло ... slam. Промыть, промыть, повторить.

Это такой потрясающий эффект, когда вы переключаетесь с одного взгляда на другой, на любое устройство размером с iPhone iOS 7. Интересно, что это происходит только при переключении с одного вида на другой, а не при переключении на новый экземпляр текущего ViewController.

Я бы показал код, но я не уверен, какой код показывать.

Я был бы признателен за любые указатели (комментарии RTFM с радостью приняты), мой Google-fu на этот раз провалил меня.

Просмотр иерархии выглядит примерно так: UIScreen TTNavigatorWindow UILayoutContainerView UINavigationTransitionView UIViewControllerWrapperView UIView TTTableView UITableViewWrapperView ... и так далее ...

Является ли это проблемой Three20 где Three20 предполагается, что Навигационные бары всегда имеют 44 точки роста, но теперь их нет?

Это проблема с построителем интерфейса, в которой панели навигации могут быть созданы только в 44 точках, и я должен иметь дело с этим в моем коде?

Является ли это эзотерической проблемой iOS 7, где принято решение о том, что, поскольку Navigator находится на верхнем уровне, необходимо изменить высоту на регулярной основе?

Является ли это проблемой документации, когда мои (явно скудные) возможности наблюдения просто не видели соответствующий бит в документах Apple?

Спасибо,

Кен

ответ

1

Прежде всего я хотел бы рекомендовать, чтобы избавиться от Three20. Я знаю, что это не очень полезно для вашей ситуации, но на самом деле.

Но тогда я хотел бы предложить вам две идеи о том, будет могло случиться:

  • Three20 действительно использует заданный размер навигационной панели в разных местах, но я не думаю, что это вызывает проблемы, которую вы Опишите здесь. Возможно, я уверен, что это вызывает проблему с iOS7 в других местах.

  • Из того, что вы описываете, это звучит так, как если бы iOS7 рассчитывал высоту навигационной панели, это может быть проблемой. Из-за чего это как-то повлияет на то, как управление трендами имеет вид 320, потому что оно работает нормально для обычного UIKit. Что произойдет, если вы переместите весь стек поиска 1 px вниз, в нижней части экрана? Я предполагаю, что панель навигации не изменит ее размер.Чтобы понять это, посмотрите на how iOS7 calculates the navigation bar height. Я предполагаю, что вы хотели бы иметь навигационную панель 64 px на протяжении всей анимации. Мне нужно выяснить, как изменить рамку контроллера представления, представленную перед анимацией, для достижения этого эффекта.

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

+0

Привет, Tonklon, спасибо, что ответили. Да, у трех20 есть *, чтобы уйти. (Мы объяснили, какие силы - это то, что это потраченное впустую усилие ... для этого выпуска мы не можем отбросить старую работу и должны покончить с тем, что у нас есть). –

+0

Я не очень впечатлен изменениями окна iOS7 Windowing. Они, по-видимому, не думали, что разработчики должны иметь возможность одновременно нацеливать 6 и 7. Они хотели навязать ситуацию, когда мы вынуждены поддерживать две структуры. Довольно раздражает Apple, но все более и более верно формировать. Спасибо за ссылку на вычисления высоты в навигаторе! –