Когда в представлении перезагрузить ресурсы, когда ориентация меняется? - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть вид, у которого много подпредставлений, и у каждого есть своя собственная графика, отличающаяся для портретной и альбомной ориентаций. Когда мне следует загружать новую графику при изменении ориентации?

Если не должно быть layoutSubviews, мне также не нравится идея перезагружать ресурсы в представлении из UIViewController из-за сложной иерархии представлений, которая у меня есть (потребуется передать эту информацию).

Существует также возможность зарегистрироваться в NSNotificationCenter для изменения ориентации в каждом представлении и загружать новые ресурсы при его изменении. Но мне это тоже не очень нравится, потому что я считаю, что в iOS должен быть механизм, который это позволяет. Или, может быть, я должен думать по-другому, и строить разные взгляды на портрет и пейзаж ...

Что вы предлагаете?

1 Ответ

1 голос
/ 01 декабря 2011

Я бы хотел, чтобы все ваши подпредставления расширили пользовательский класс представлений, который имеет метод -setOrientation:, который переключается между портретной и альбомной графикой. Затем в вашем контроллере представления я бы переопределил -willRotateToInterfaceOrientation:duration: и добавил цикл, который устанавливает ориентацию для всех дочерних элементов, тем самым вызывая обмен изображения при изменении ориентации.

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

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

...