перетащите объект только в пределах определенной области - PullRequest
0 голосов
/ 24 августа 2011

У меня есть объект, который я хочу, чтобы пользователь мог перетаскивать вдоль определенной области по экрану, а не просто где-нибудь на экране.Я хочу, чтобы он перемещался по экрану (ось x) на определенной высоте на экране (ось y), поэтому пользователь может перемещать объект в любом месте вдоль оси x, сохраняя заданное положение на оси y.

Если мои координаты правильные ...

Я хочу, чтобы объект начинался с 500x, 580y, а затем пользователь мог перетаскивать объект вдоль оси x в любом месте, скажем, от 20x до 990x, сохраняя при этомположение объектов на оси у 580.

Вот что у меня есть до сих пор ... закомментированные части // это части, которые я пробую, но не работаю ....

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
//CGPoint location=[touch locationInView:touch.view]; 
//CGPoint yLocation=CGPointMake(object.center.x,location.y) object.center=yLocation;

    if([touch view] ==myimage)
{
    myimage.center = touchLocation;
}
}

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
//new Draggable('myimage',
              //{snap: function(y)
                 // {return[ (y<1024)?(y>0?y:0):1024];
                  //}
              //}
 //CGPoint location=[touch locationInView:touch.view]; 
// CGPoint yLocation=CGPointMake(object.center.x,location.y) object.center=yLocation;

    if([touch view] ==myimage)

    if([touch tapCount] ==2)
    {
        myimage.transform =CGAffineTransformMakeRotation (3.141592654); //M_PI*1.00

    }

 }

спасибо

1 Ответ

0 голосов
/ 24 августа 2011

Я думаю, что вы устанавливаете центральную точку ваших изображений на место касания. Это переместит изображение туда, где вы находитесь. Чтобы управлять одной осью за раз, вам просто нужно разбить место касания на оси X и Y и обновить только координаты X или Y изображения, которое вы перемещаете. Между тем каждое обновление будет всегда использовать статическую координату, чтобы вы оставались неизменными. Это должно дать вам результаты, которые вы ищете. Я почти уверен, что остальная часть вашего кода для перетаскивания не нужна.

Пример:

CGPoint touchLocation = [touch locationInView:self.view];
myImage.center = CGPointMake(touchLocation.x, 580);
//Here we just use the X coordinate of the touch
//We make a new point location and use 580 always since we never
//want the Y axis to move. This should give you an image that moves
//left or right as you move your finger but never up and down.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...