2013-04-16 2 views
0

С помощью панели GestureComponent, я пытаюсь получить первое местоположение текущего объекта, перетаскиваемого. Для этого я сделал:iOS: получить реальную позицию текущих объектов

Первоначально, я сохраняю положение кнопки при возникновении состояния.

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{ 

    CGPoint startlocation; 

// Get Position X and Y 
if (recognizer.state == UIGestureRecognizerStateBegan) { 
    startlocation = [recognizer locationInView:self.view]; 
    NSLog(@"%f" @"-" @"%f", startlocation.x , startlocation.y); 
} 

И когда пользователь освобождает boutton (государство Закончилось), я хочу, чтобы установить кнопку назад на первом месте.

// Quand on lache le composant : Action de fin 
if (recognizer.state == UIGestureRecognizerStateEnded) 
{  
NSLog(@"%f" @"-" @"%f", startlocation.x , startlocation.y); 
recognizer.view.center = startLocation; 
} 

NSLog:

государственный Стала:

76.000000-158.000000 

Государственный endend:

0.000000--1.998666 

У меня есть проблема. Моя кнопка отключена. Я не знаю, почему X и Y из startLocation изменены?

ответ

1

Вы говорите о 2 разные вещи:

  1. Положение на ощупь, что запуск сковороду жест recognizer locationInView
  2. Положение точки зрения (вы не говорите, если вы используете кадр происхождение или центр)

не ясно, что вы пытаетесь сделать, но вы должны решить, вы перемещение целевого вида на сковороду жест перевод:

if (recognizer.state == UIGestureRecognizerStateBegan) { 
    startLocation = targetView.center; 
} 

CGPoint translation = [recognizer translationInView:self.view]; 

CGPoint newCenter = startLocation; 
newCenter.x += translation.x; 
newCenter.y += translation.y; 

targetView.center = newCenter; 

или вы пытаетесь привязать целевой вид на сковороду жест расположение

targetView.center = [recognizer locationInView:self.view]; 

Это все при условии, что цель зрением является прямой подтаблицей из self.view ...

+0

Моих уровень не настолько продвинут, чтобы понять все различия, о которых вы говорите, но в основном у меня есть кнопка на моем Iview. Я хочу переместить его по области экрана. Когда пользователь перетаскивает кнопку, прежде всего, мне нужно сохранить местоположение моей кнопки (x и y). И когда пользователь бросает кнопку в любом месте, я хочу, чтобы моя кнопка была на первом месте. –

+0

Итак, пользователь начинает панорамирование с кнопки, кнопка перерисовывается по мере их перемещения под их пальцем, а затем, когда они освобождаются, возвращается туда, где она началась (и вы сохраняете конечную позицию)? – Wain

+0

да почти, но мне просто нужно сохранить первую позицию. Не конец :) ... (сохранение первой позиции, я могу, чтобы установить кнопку на первом месте) –

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