Как бы я внедрил вращающийся компас с номерами, которые остаются в вертикальном положении? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь сгенерировать отображение для своего приложения, которое работает как стандартное приложение iPhone Compass - в частности, вращение набора, но аннотации (N, S, E, W и различные числа) остаются вертикальными по кругувокруг.Теперь у меня есть версия приложения, которая работает, но я вынужден смешать CGAffineTransforms, которые вращают диск, а затем вручную перерисовать текст в правильные места.Помимо глупости и расточительности, я не верю, что могу использовать анимацию с моим подходом для сглаживания вращений.Есть ли стандартный подход для такого рода вещей?Я предполагаю, что мог бы генерировать уникальное аффинное преобразование для каждого числа / буквы вокруг кольца, но это также кажется дорогим.Я знаю, что это можно сделать, потому что стандартное приложение для компаса, как говорится, «гладкое как масло».Любые идеи?

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

N / A

Хотелось бы иметь унифицированную технику рисования, которую я мог бы анимировать, чтобы моя компасная анимация была такой же плавной, как и встроенное приложение.

1 Ответ

0 голосов
/ 22 января 2019

Думаю, я понял это. Для тех, у кого тот же вопрос, это простое решение:

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

Оберните все это в анимацию, и она будет гладкой, как шелк.

Надеюсь, это кому-нибудь поможет ...

...