Вращение UIView; Как предотвратить отсечение во время вращения? - PullRequest
1 голос
/ 25 декабря 2011

Допустим, у меня есть UIView, который в своей стандартной конфигурации охватывает всю ширину и высоту своего контейнера. Для целей этого вопроса, скажем, что его размеры 320x400. Предположим, что это представление содержит контент, который может (и обычно) больше, чем его стандартные измерения (поэтому он прокручивает контент).

Теперь, если с этим UIView связан UIRotationGestureRecognizer, связанный с ним, который используется для поворота вида с помощью его свойства transform, как мне убедиться, что его размер кадра / область рисования всегда достаточно велика для его текущей ориентации (под «достаточно большим» я подразумеваю, что отображаемый контент всегда должен выходить за исходные границы, а не обрезаться до достижения края исходных границ)? Например, если я поверну его на 90 градусов, представление должно понимать, что его «ширина» может теперь занимать до 400 пикселей, а его высота ограничена 320 пикселями.

Обратите внимание, что я не хочу масштабировать вид как часть операции поворота. Любое «дополнительное» пространство, которое становится доступным из-за текущего поворота, должно использоваться для отображения дополнительного содержимого, если оно доступно, а не просто для отображения того же содержимого с более высоким уровнем масштабирования.

1 Ответ

1 голос
/ 05 июня 2012

Вы не хотите, чтобы при вращении появлялись пустые места. Решение состоит в том, чтобы иметь подпредставление, содержащее фон, достаточно большой, чтобы охватить весь видовой экран во время вращения. Я бы сказал, что 400 на 400 должен делать вид. Это представление может быть родителем вашего просмотра контента, но это немного затруднит позиционирование.

Проще было бы добавить подпредставление к вашему текущему представлению. Поместите (большой) фон в это подпредставление, убедитесь, что это представление находится внизу стека представлений, а в текущем представлении поместите clipsToBounds = NO.

Остерегайтесь, однако, что отключение отсечения может оказать влияние на производительность, особенно если ваша иерархия представлений становится сложной.

...