Содержимое UIScrollView сдвинуто после закрытия ModalViewController

У меня есть постраничный прокрутки. Каждая страница имеет viewcontroller (buttonViewController), который управляет сеткой кнопок. Если вы нажмете одну из кнопок, buttonViewController автоматически вызовет другой view-контроллер (detailViewController).

Проблема в том, что когда я отклоняю модальный контроллер вида, видимый buttonViewController сдвигается вниз примерно на 20 пикселей. Странно то, что смещается только видимая страница. Если я перейду к другой странице, которая уже загружена, она все еще находится в правильном положении.

Мой вопрос в основном такой же, как увольнение modalViewController перемещает кнопки основного вида вокруг iphone

Однако принятый ответ на этот вопрос предполагал, что строка состояния скрыта. Я не скрываю строку состояния в своем приложении.

Есть другие идеи?

Еще одно замечание: сдвиг происходит только при первом запуске модального контроллера вида. Если я продолжу открывать и закрывать модальный контроллер вида, все останется прежним.

Еще одно замечание: если я добавлю следующий код:

    CGRect frame = self.view.frame;
frame.origin.y=0;
self.view.frame = frame;

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

2 ответа

Решение

Оказывается, это было связано с: ModalViewController не отображается во время анимации при прокрутке с прокруткой.

Я не соответствовал высотам некоторых из моих контроллеров представления, и это все отбрасывало.

Некоторые из них имели высоту 460 пикселей, некоторые - 480 пикселей. По какой-то причине это заставило его сдвигаться на 20 пикселей каждый раз, когда модальный контроллер вида исчезал. Как только я сделал все 460 пикселей, все работало отлично.

Ну, у меня была эта проблема, и это было из-за способа, которым был установлен мой первый viewController (в UIWindow), это очень странно, так как этого никогда не случалось со мной раньше, я наблюдал поведение, когда вы добавляете подпредставление в точка (0,0) перекрывается со строкой состояния, что не обычно, обычно представления знают о строке состояния и ведут себя соответствующим образом. В качестве побочного эффекта, когда кто-то нажимает на модальное представление, которое снимает строку состояния, после ее закрытия я вижу ту же проблему, что и вы. Что я сделал, чтобы исправить, так это установил представление UIWindows для моего представления контроллеров в кончике, это, казалось, исправило все. Еще раз, я не знаю, почему простое добавление в окно программно с помощью CGRectMake(0,0,320,460) имело такое странное поведение, так как я делал это для всех моих предыдущих проектов и видел правильное поведение. Но когда я установил его в перо, все заработало как положено. Может быть, это и ваша проблема.

Другие вопросы по тегам