Вы должны быть в состоянии положить иглу в UIImageView
.Каждое представление теперь имеет ассоциированное преобразование, это в основном матрица, которая решает, как исходные точки отображаются на экране.Есть довольно простые способы сделать простую манипуляцию этим:
UILabel *lblTest = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
lblTest.text = @"Testing";
[view addSubview:lblTest];
lblTest.transform = CGAffineTransformMakeRotation(M_PI / 4.0);
приведет к повороту метки на 45 градусов (что составляет четверть PI в радианах; вы можете конвертировать градусы в радианы путем умноженияна M_PI и делится на 180,0).Используя это, у вас уже есть под рукой методы для анимации иглы всякий раз, когда приходит новая точка данных.
Обратите внимание, что это также можно анимировать:
[UIView animateWithDuration:5.0 animations:^{
lblTest.transform = CGAffineTransformMakeRotation(M_PI_4);
}];
Это будет медленно поворачивать представлениедо 45 градусов в течение 5 секунд.Для анимации есть несколько уроков, например Как использовать анимацию UIView .И каркас уже учитывает некоторые продвинутые вещи, например:
[UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationCurveEaseInOut|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{
lblTest.transform = CGAffineTransformMakeRotation(M_PI_4);
} completion:^(BOOL finished) {
}];
"сгладит" начало и конец вращения, автоматически обратный ход и повторяет это снова и снова.Это приводит к тому, что метка «шевелится» взад и вперед после ожидания в течение 1 секунды.
Вы можете использовать это для введения некоторых плавных эффектов при переходе между значениями.Если вы, например, делаете выборку данных только каждые 250 мс, вы можете использовать это время для представления анимации.