В основном я хочу прикоснуться к изображению, чтобы повернуть его по центру на 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);
}
}
Выше мой код.
Когда я перетаскиваю его, он перемещается, но положение изображения довольно далеко от моих указателей. Кроме того, при начале и конце перетаскивания изображение вращается.
Когда я коснусь его, он исчезает. (возможно, перемещение или поворот в сторону вне экрана)
Любые предложения?
В зависимости от того, как вы положите его на дисплей список locationInSpace должен быть родителем или даже parent.parent (должно быть общим предком для этого элемента и родительским образом. –