Есть ли простой способ указать, должно ли изображение поворачиваться по часовой стрелке или против часовой стрелки в объективе C? У меня есть спидометр с иглой (дизайн, отражающий цены на автомобили) - он работает нормально, за исключением случаев, когда он ближе, чтобы игла вращалась вниз и выходила из экрана на другую сторону. Я хочу, чтобы он всегда вращался против часовой стрелки, чтобы перейти на более низкие цифры и по часовой стрелке, чтобы перейти к более высоким номерам. Вот мой сегмент кода:Ориентация анимации вращения поворота CoreAnimation
// figure out the minimum and maximum prices shown on the
// speedometer
float min = [_a.text floatValue] * 1000;
float max = [_g.text floatValue] * 1000;
// set calibration between number labels to be small or large
int cal = SMALL_CALIBRATION;
if ([_stickerPriceSetting floatValue] >= TRIGGERPRICE)
cal = LARGE_CALIBRATION;
// set an animation duration of 1.5 seconds for the needle rotation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
// low prices (off speedometer)
if (price < (min - cal))
_needle.transform = CGAffineTransformMakeRotation(- M_PI/12);
// price too high (off speedometer)
else if (price > (max + cal))
_needle.transform = CGAffineTransformMakeRotation(M_PI * 13/12);
// need to have needle point to the price
else {
float delta = (max - min);
float price_point = price - min;
_needle.transform = CGAffineTransformMakeRotation(price_point/delta * M_PI);
}
[UIView commitAnimations];
Это полезно для меня - за исключением того, что я не знаю, будет ли угол от исходной точки до новой точки больше 180 градусов - если нет простого способа узнать, какой угол игла (UIView) в настоящее время? Я предполагаю, что мне придется написать кучу кода, сохранив старую цену и включив ее в движение иглы. –