Помогите понять, что касается iPhone. Начать реализацию и перетащить UIView. - PullRequest
0 голосов
/ 21 ноября 2010

Я знаю, что на этот вопрос уже приходилось отвечать ( сообщения iPhone "touchesBegan" и "touchesMoved" ... не перемещаются в центр касания ), но я очень плохо знаком с разработкой iPhoneне понимаю ответа.

По сути, я хочу иметь UIImageView, который реагирует на прикосновения, чтобы перемещать его по экрану.Образец от Apple считает, что когда он касается touchBegan, перемещает его центр к касанию, а затем перемещает представление.

Мне бы хотелось, чтобы изображение панорамировалось, когда вы используете UIImagePicker.Выбранное изображение не привязывается к прикосновению, а вместо этого перемещается от прикосновения.

Любая помощь будет наиболее ценной.

1 Ответ

3 голосов
/ 21 ноября 2010

Сначала вам нужно получить точку, где вы впервые коснулись экрана.Затем для каждого «сдвигаемого касания» получите координаты дельты x и y для новой точки и переместите изображение на эту величину.

// This is untested code and I can't even be sure if it compiles
// Hopefully it is verbose enough to help you with that you are
// Trying to do. If not I can update once I get back infront of 
// a Mac.
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    lastPoint = [touch locationInView:self.view];
    CGPoint delta = currentPoint - lastPoint;

    currentViewLoc = imageView.center;

    imageView.center.x = currentViewLoc.x - delta.x;
    imageView.center.y = currentViewLoc.y - delta.y;

    currentPoint = lastPoint;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject]; 
    currentPoint = [touch locationInView:self.view];
}

что-то подобное в любом случае.Я надеюсь, вы поняли, что я пытаюсь сказать.

...