Так что я пытаюсь выполнить (казалось бы) простую анимацию преобразования на UIImageView, просто переместив ее на 100 пунктов. Это мой код:iOS Transform Translate Анимация не работает правильно
[UIView animateWithDuration:1 delay:1 options:nil animations:^(void) {
CGAffineTransform tf = CGAffineTransformMakeTranslation(0, -100);
[image setTransform:tf];
} completion:^(BOOL finished) {} ];
Он работает ... но по какой-то причине выбирает новое начало для моего UIImageView, чтобы начать с. Например, если исходные координаты центра изображения (300, 400), то по моему коду он должен перевести на 100 пунктов (300, 300). Но по какой-то причине код делает изображение немного ниже, чем там, где он должен, например, вокруг (300, 450), а затем он будет подниматься на 100 до (300, 350). Как я могу заставить его сделать анимацию, откуда исходное изображение?
Нет ничего плохого в этом коде, поэтому проблема, по-видимому, в другом месте. Вы используете Autolayout? Как вы добавили изображение в первую очередь? Если у вас нет этого кода, отображается ли изображение в «правильном» месте? – jrturton
Да, это потому, что вы используете AutoLayout. Вам нужно анимировать ограничения, а не сам кадр. – Fogmeister
Изображение не имеет ограничений, анимация ограничений не работает. Как отключить AutoLayout? Изображение помещается в файл макета xib, а не программно. Будет ли это программно помогать решить эту проблему? – StackOverflowMaster