为什么我只能刷一次自定义视图图片?

时间:2016-04-05 05:23:38

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

怎么样?我有一个带有IBAction滑动手势功能的IBOutlet UIImageView,但我只能刷一次对象。基本上,有一个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 个答案:

没有答案