Вопрос

Мне нужно повернуть изображение несколько раз на 90 градусов, я использую следующий код,

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

здесь форма является моим UIImageView.

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

Я новичок в программировании для iPhone, приношу извинения, если я упускаю что-то очень простое, и заранее благодарю вас за помощь.

Кедар

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

Решение

Если вы пытаетесь анимировать это вращение, возможно, вам захочется прочитать мой ответ Для этот вопрос, где кто-то пытался анимировать постепенное вращение вида.Оказывается, инкрементная анимация преобразования с использованием CABasicAnimations немного сложнее, чем можно было бы ожидать.Сначала вам нужно прочитать текущее преобразование слоя вашего UIView из его presentationLayer, затем ввести это в вашу анимацию как значение fromValue .

Однако в вашем случае кажется, что вы используете анимационный блок UIView для анимации свойства transform вашего представления.Код в том виде, в каком вы его написали, будет только продолжать настраивать преобразование вашего вида на тот же поворот на 90 градусов, он не будет постепенно поворачивать вид с шагом 90 градусов.Чтобы выполнить инкрементную ротацию, я полагаю, вам понадобится что-то вроде следующего:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

который захватит текущее преобразование вида, повернет его на 90 градусов, а затем применит полученное преобразование к виду.Опять же, это может привести к тем же проблемам, что и с CABasicAnimations, и в этом случае вам следует обратиться к приведенному выше ответу.

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