2013-11-13 2 views
0

Я использую - (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event для перемещения изображения. Как я могу поправить свое положение после его перемещения. Я хочу, чтобы, когда я выбираю правильную позицию, изображение больше не должно двигаться.Как исправить положение изображения после его перемещения?

+1

Что вы пробовали? Покажите код, как вы его пробовали. В любом случае, я бы сохранил значение bool для изображения - в случае, если касания переместились в какую-то правую сторону или выше другого представления, я бы обнаружил это и изменил значение bool - поскольку изображение больше не перемещается. Затем, при касании, я проверил бы значение bool и вернусь, если это правда. –

ответ

1

вы можете сделать так:

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    UIImageView *view1 =moveImageView; 
    CGPoint point = [touch locationInView:self.view]; 
    //the right position 
    if(point.x==?&&point.y==?){ 

      rightPosition = YES; 
      moveImageView.frame = CGRectMake(point.x, point.y, 50, 50); 
    }else{ 
      //the UIImageView you want to move 
      if(!rightPosition){ 
       moveImageView.frame = CGRectMake(point.x, point.y, 50, 50); 
      } 
    } 
} 
3

Добавить PanGesture в ImageView, содержащей изображение.

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panDetected:)]; 
[imageView addGestureRecognizer:panRecognizer]; 
//method to move imageView whereever you want in the view,you can also write conditions to restrict the imageView not to go beyond bounds. 
- (void)panDetected:(UIPanGestureRecognizer *)panRecognizer 
{ 
    CGPoint translation = [panRecognizer translationInView:self.view]; 
    CGPoint imageViewPosition = imageView.center; 
    imageViewPosition.x += translation.x; 
    imageViewPosition.y += translation.y; 


    imageView.center = imageViewPosition; 

    [panRecognizer setTranslation:CGPointZero inView:self.view]; 

//you can use if(panRecognizer.state==UIGestureRecognizerStateEnded){} condition to fix the position of the imageView. 
} 
Смежные вопросы