2013-03-25 5 views
0

В основном я хотел бы просто коснуться изображения и заставить его двигаться пальцем по экрану без использования .Image.center = touchPosition Я не хочу, чтобы центр привязывался к моему Палец. Я хочу переместить изображение с любой точки, к которой я прикасаюсь.Перемещение UIImageView без использования свойства центра

+2

Таким образом, сохранить первоначальную точку свойства «центра» в качестве переменной, и вычтите это из своего нового местоположения. –

+0

не является опцией, потому что объект находится в центре движения – user2037857

ответ

2

Стандартный способ справиться с этим, что @ richard-j-ross-iii намекнул в комментарии, состоит в том, чтобы сохранить разницу между центром обзора и положением касания при начале перетаскивания, а затем сохранить эту разницу в качестве перетаскивание продолжается. В вашем методе touchesBegan:withEvent: сохранить смещение, как:

_dragOffsetFromCenter = CGSizeMake(touchLocationInImageView.x - centerOfImageView.x, touchLocationInImageView.y - centerOfImageView.y); 

затем в touchesMoved:withEvent: вы можете сохранить тот же смещение, как:

myImageView.center = CGPointMake(touchLocation.x - _dragOffsetFromCenter.x, touchLocation.y - _dragOffsetFromCenter.y); 
+0

как я могу рассчитать touchLocationInImageView? – user2037857

+0

Различные методы 'touchhes: *' получают 'NSSet' объектов UITouch, когда они вызывают UIKit. Возьмите одно из штрихов в этом наборе (если вы не поддерживаете multi-touch на этих представлениях, просто используйте '[касается anyObject]', чтобы получить одно касание), затем 'touchLocationInImageView = [theTouch locationInView: myImageView];' –

+0

not работайте над этим вопросом – user2037857