Мне рекомендуется попробовать CADisplayLink
, чтобы повернуть UIIMageView
. Я создаю это приложение с помощью раскадровки.UIImageView Вращение анимации с использованием CADisplayLink - Отслеживание вращения
Мне нужно запустить и остановить анимацию, когда экран прослушивается. Мне также нужно отслеживать угол, при котором вращение останавливалось при прослушивании экрана.
Я нашел этот учебник HERE, но это не совсем полезно для меня.
Я также нашел несколько небольших примеров (here's one), но я не мог получить его на самом деле. Из того, что я взял из приведенного выше примера, мое изображение повернуло один раз, а затем просто остановилось.
Другое, что я действительно не могу найти хороший учебник или пример того, как использовать CADisplayLink
, чтобы повернуть мой UIImageView
непрерывно, до тех пор, пока он не постукивается, а затем продолжайте вращаться при повторном нажатии и, наконец, сохраняя угол поворота.
Чтобы дать вам представление о том, чего я пытаюсь достичь, это в основном циферблат часов, и, когда вращающаяся часовая стрелка вращается, вы можете начать и остановить его, нажав и извлекая угол.
Кто-нибудь знает хороший пример? или может помочь мне здесь. Благодарю.
UPDATE/EDIT
Используя удивительный Obj-C ответ Роба ниже в мое приложение работает отлично. Incase кому-то интересно, это то, как отслеживать угол поворота и отображения его на экране:
Каждый раз, когда HandleDisplayLink
называется, я назвал этот метод: [self calculateDisplayAngle];
Метод прост:
- (void)calculateDisplayAngle{
currentRotationAngle = self.percent*360; //360 because I changed kDuration = 1;
self.AngleLabel.text = [NSString stringWithFormat:@"Angle: %.2f",currentRotationAngle];
}
Похоже, это имеет смысл. Так оно и есть. 360 оборотов каждые 2,5 секунды? И вращаться бесконечно, пока не остановится? Будет ли это работать, если мой UIImageView находится на моей раскадровке и связан с моим «.h»? Извините, это мой первый раз с такой штукой. Кроме того, в этом контексте я не видел синтаксиса вопросительного знака. Уже поздно, поэтому я правильно посмотрю на это завтра. – Reanimation
Ой, подождите, это быстро? – Reanimation
К сожалению, извиняюсь за это. Спасибо, что нашли время для публикации, я действительно ценю это. Я попытаюсь перевести его в ObjC завтра. – Reanimation