Изменение размера UIView после поворота с помощью CGAffineTransform - PullRequest
1 голос
/ 08 апреля 2011

это мой первый вопрос здесь, поэтому всем привет:)

Мне нужно добиться результатов, аналогичных манипулированию изображениями страниц / ключевых слов.У меня есть вид, который я могу вращать / масштабировать и так далее.У меня есть ручки на каждом углу для изменения размера просмотра.Все работает (масштабирование / вращение), но когда изображение поворачивается, и я пытаюсь изменить его размер, перемещая маркеры, все идет не так, или изображение изменяет свой размер непредсказуемо, или оно движется по всему экрану.

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

вот видео, которое мне нравится получать. пример

1 Ответ

0 голосов
/ 16 июня 2011

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

Первое, на что нужно обратить внимание, это то, что представление *Свойство 1003 * выходит за границы (т. Е. Его значение не определено, когда к нему применено преобразование вращения), поэтому вместо этого необходимо использовать свойства bounds и center.Тогда вам просто нужно вычислить новые границы и центральную позицию на основе текущего угла.Скука приходит с осознанием того, что bounds больше не выровнены по горизонтальной и вертикальной оси, тогда как координаты center, конечно, являются, следовательно, необходимыми ручкой и бумагой.Ваши расчеты будут немного отличаться для каждого дескриптора, однако вы можете просто избежать копирования кода одного дескриптора и изменения некоторых знаков плюс / минус.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...