调用和移动动画仅在调用

时间:2016-04-05 07:22:15

标签: ios objective-c xcode cocoa-touch uiswipegesturerecognizer

怎么样?我有一个带有IBAction滑动手势功能的UIImageView的IBOutlet,但我只能刷一次对象。基本上,有一个5x5游戏板和2个类似石头的物体,我可以不断地在板上滑动。滑动一次,石头状物体移动直到到达板边界。 这里有一些代码(用于向下滑动石头_one)

- (IBAction)swipeDown:(UISwipeGestureRecognizer *)recognizer {
     NSLog(@"Swipe Right");
     // Get the view I'm interacting with, in this case, _one
     UIView *view = recognizer.view;
     if (view == _one) {
         NSLog(@"Got it 2");
         [self moveOne:CGPointMake(-1, 0) withView:view];
     } else if (view == _two) {
         NSLog(@"Got it 2.5");
         [self moveTwo:CGPointMake(-1, 0) withView:view];
     }
}

- (void)moveOne:(CGPoint)direction withView:(UIView*)stoneView {
     NSLog(@"Got it 5");
     // Bunch of code for getting new position
     // .
     // .
     // .
     [UIView animateWithDuration:0.35f
                           delay:0.0f
                         options:UIViewAnimationOptionCurveLinear
                      animations:^{
                          CGRect rect = stoneView.frame;
                          rect.origin.x = _currentCol*61.5;
                          rect.origin.y = _currentRow*61.5;
                          stoneView.frame = rect;
                      }
                      completion:^(BOOL finished) {
                          NSLog(@"Done finally");
                      }];
}

好的,所以当我运行这个并查看输出时,我的程序会进入"最后完成"在日志中。但我只能刷石头一次。想象一下2048,除了你只需要刷数字' 2'平铺一次然后再也不与游戏互动。 每个石头的手势识别器实例都在ViewController.m中的viewDidLoad {}中创建,与滑动和移动方法相同。为什么我不能多次滑动?是否应该在完成中进行一些更新:'动画方法的块?

- 如果您需要更多信息,请告知我们

0 个答案:

没有答案