Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top