2010-08-16 3 views
0

Me again. У меня простой вопрос. У меня есть UIImageView, как показано ниже. alt text http://img683.imageshack.us/img683/1999/volumen.pngПозиция на UIImageView

Этот UIimageView должен быть ручкой для управления объемом моего проекта iphone. Мой вопрос: как узнать положение бара в UIImageView при его повороте? Поскольку объем должен составлять 0,5, когда маленький стержень на круге вертикален.

я получил кусок кода, который (в методе touchMoved):

float dx = locationT.x - imgVVolume.center.x; 
float dy = locationT.y - imgVVolume.center.y; 


CGFloat angleDif = 0.0f; 

movedRotationAngle = atan2(dy,dx); 

if (beganRotationAngle == 0.0) { 
    beganRotationAngle = movedRotationAngle; 
    initialTransform = imgVVolume.transform; 
} 
else { 
    angleDif = beganRotationAngle - movedRotationAngle; 
    CGAffineTransform newTrans = CGAffineTransformRotate(initialTransform, -angleDif); 
    imgVVolume.transform = newTrans; 
} 

Помощь пожалуйста.

+0

В чем причина? в чем вопрос? –

+0

Вопрос в том, как узнать положение изображения, чтобы отрегулировать громкость – awlcs

+0

, разве это не будет угол, который вы ищете? Возможно, вам нужно добавить их все вместе :) – willcodejavaforfood

ответ

1

Это зависит от того, какой механизм ввода вы хотите использовать для управления вращением.

Если ручка должна вращаться на основе касания пальца одним пальцем из стороны в сторону, вы можете создать UIPanGestureRecognizer и прикрепить его к ручке UIImageView. Метод translationInView: возвращает CGPoint, который представляет собой количество перемещений X и Y с точки соприкосновения. Вы можете подавать это в формулу, подобную той, которую вы отправляете, чтобы получить угол поворота. Вам нужно будет отслеживать дельта из последней позиции, а также проверять ограничения на остановку (например, 0..360), чтобы предотвратить чрезмерное вращение.

OTOH, если вы собираетесь использовать поворот на два пальца, вы должны использовать UIRotationGestureRecognizer и искать значение rotation. Просто подайте это в CGAffineTransformRotate и установите его в преобразование UIImageView. Это заботится обо всем вышеперечисленном для вас. Опять же, вы захотите проверить ограничения на остановку.

+0

не могли бы вы привести пример? Это одно касание пальцем. Я подтверждаю: D – awlcs

Смежные вопросы