Изменение размера вида при изменении ориентации - PullRequest
1 голос
/ 17 марта 2010

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

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

Чтобы уточнить, я уверен, что это не то, что можно сделать с помощью маски авторазмера. Я также подумал, что sizeThatFits: это то, что мне нужно, но я не видел, чтобы он вызывался при изменении ориентации.

Мне также известно, что я могу сделать это, переопределив layoutSubviews суперпредставления (или, может быть, какой-то другой метод контроллера представления, но я хотел бы встроить это поведение в представление для облегчения повторного использования.

1 Ответ

2 голосов
/ 17 марта 2010

При вращении устройства вы получаете несколько сообщений:

- shouldAutorotateToInterfaceOrientation:;
- willRotateToInterfaceOrientation:duration:;
- didRotateFromInterfaceOrientation:

Вы можете использовать их для изменения макета вашего вида при вращении пользователя.

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

...