基本的には、画像をタッチして中心を中心に 90 度回転させたいと考えています。画像をドラッグして移動します (回転せずに)。
- (void) onImageTouched:(SPTouchEvent *)event
{
SPImage *img = (SPImage *)event.target;
SPTouch *drag = [[event touchesWithTarget:self andPhase:SPTouchPhaseMoved] anyObject];
SPTouch *touch = [[event touchesWithTarget:self andPhase:SPTouchPhaseBegan] anyObject];
float offsetX, offsetY;
if(touch){
SPPoint *initial = [touch locationInSpace:self];
offsetX = initial.x - img.x;
offsetY = initial.y - img.y;
}
if (drag) {
SPPoint *dragPosition = [drag locationInSpace:self];
NSLog(@"Touched (%f %f)",dragPosition.x, dragPosition.y);
//img.x = dragPosition.x - offsetX;
//img.y = dragPosition.y - offsetY;
}
else{
img.pivotX = img.width / 2.0f;
img.pivotY = img.height / 2.0f;
NSLog(@"Rotated aboout(%f %f)",img.pivotX,img.pivotY);
//img.rotation = SP_D2R(90);
}
}
上記は私のコードです。
ドラッグすると動きますが、画像の位置がポインターからかなり離れています。また、ドラッグの開始時と終了時に画像が回転します。
タップすると消えます。(たぶん画面の外に移動したり回転したりします)
助言がありますか?