2016-06-19 20 views
0

SOVLEDпереместить несколько вид изображения не работают, отскакивает назад в исходное положение

См пост ниже

я использую UITouch переместить два imageviews. Когда я перемещаюсь по imageview1 и освобождаю изображениеview1, он остается в этом положении, но когда я начинаю перемещать imageview2, imageview1 возвращается к исходной позиции. То же самое происходит, если сначала переместить imageview2. Я хочу, чтобы изображения отображались в позиции выхода, а не в исходное положение. Я использую тот же код в другом старом проекте xcode, и там работает perfekt.

Вот код, я using-

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

// get touch event 

UITouch *touch = [[event allTouches] anyObject]; 

CGPoint touchLocation = [touch locationInView:self.view]; 

if ([touch view] == imageView1 && imageView1.tag == 0) { // If touched view is imageView1 , then assign it its new location 

    imageView1.center = touchLocation; 
    [self.view bringSubviewToFront:imageView1]; 

} 

if ([touch view] == imageView2 && imageView2.tag == 0) { // If touched view is imageView2, then assign it its new location 

    imageView2.center = touchLocation; 
    [self.view bringSubviewToFront:imageView2]; 
    [imageView2 setFrame:CGRectMake(imageView2.frame.origin.x, 
            imageView2.frame.origin.y,68,138)]; 

    } 

} 


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ 
UITouch *touch = [[event allTouches] anyObject]; 

CGPoint touchLocation = [touch locationInView:self.view]; 
NSLog(@"%@", NSStringFromCGPoint(touchLocation)); 

if ([touch view] == imageView1 && imageView1.tag == 0) { 

    if ((touchLocation.x >= 289 && touchLocation.x <= 381) && (touchLocation.y >= 99 && touchLocation.y <= 135)) { 
     //NSLog(@"imageView1"); 

     imageView1.tag=1; 

     [UIView animateWithDuration:0.35 
           delay:0.0 
          options: UIViewAnimationOptionAllowAnimatedContent 
         animations:^{ 
          imageView1.frame = CGRectMake(244.0, 64.0, 112, 97); 



          NSURL *musicFile; 
          musicFile = [NSURL fileURLWithPath: 
              [[NSBundle mainBundle] 
              pathForResource:@"knapp" 
              ofType:@"mp3"]]; 
          audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; 
          [audioPlayer play]; 
          audioPlayer.delegate = self; 

         } 
         completion:^(BOOL finished){ 
          NSLog(@"Auto adjust!"); 
         }]; 

    } 

    else { 

     [UIView animateWithDuration:0.35 
           delay:0.0 
          options: UIViewAnimationOptionAllowAnimatedContent 
         animations:^{ 
          imageView1.frame = CGRectMake(50, 626, 112, 97); 

         } 
         completion:^(BOOL finished){ 
          NSLog(@"imageView1!"); 

          //NSLog(@"Jump back!"); 
          NSLog(@"%ld", (long)imageView1.tag); 
         }]; 


    } 

} 

if ([touch view] == imageView2 && imageView2.tag == 0) { 

    if ((touchLocation.x >= 426 && touchLocation.x <= 450) && (touchLocation.y >= 210 && touchLocation.y <= 240)) { 
     //NSLog(@"imageView2"); 

     imageView2.tag=1; 

     [UIView animateWithDuration:0.35 
           delay:0.0 
          options: UIViewAnimationOptionAllowAnimatedContent 
         animations:^{ 
          imageView2.frame = CGRectMake(408.0, 152.0, 68, 138); 

          NSURL *musicFile; 
          musicFile = [NSURL fileURLWithPath: 
              [[NSBundle mainBundle] 
              pathForResource:@"knapp" 
              ofType:@"mp3"]]; 
          audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; 
          [audioPlayer play]; 
          audioPlayer.delegate = self; 

         } 
         completion:^(BOOL finished){ 
          NSLog(@"Auto adjust!"); 
         }]; 

    } 

    else { 

     [UIView animateWithDuration:0.35 
           delay:0.0 
          options: UIViewAnimationOptionAllowAnimatedContent 
         animations:^{ 
          imageView2.frame = CGRectMake(82, 519, 49, 99); 

         } 
         completion:^(BOOL finished){ 
          //NSLog(@"Jump back"); 
          NSLog(@"%ld", (long)imageView2.tag); 
         }]; 


    } 

    } 

} 

Я благодарен за любую помощь.

+0

Пожалуйста, помогите мне! – user3266053

ответ

0

Я решил проблему, как этот

я добавил скрытый UIImageView, что я положил на правильном месте.

В заявлении, если я добавил:

completion:^(BOOL finished){ 
          NSLog(@"Auto position!"); 
          imageView1x.hidden = NO; 
          imageView1.hidden = YES; 
         }]; 

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

  • Нет связанных вопросов^_^