0

我正在尝试为 UIImageView 实现 UIPanGestureRecognizer。目前,我能够拖动 UIImageView 并限制我将其移动到的位置并且可以工作。但是,它正在移动似乎是 UIImageView 的副本,并且原始 UIImageView 保留在原地。为什么会出现这种情况?

创建 UIImageView 并将其添加到主视图后,我将添加手势识别器:

UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(tileDragged:)];
pan.maximumNumberOfTouches = 1;
pan.minimumNumberOfTouches = 1;
[tileImageView addGestureRecognizer:pan];

然后在我的 tileDragged 方法中:

case UIGestureRecognizerStateChanged:
{  
    PuzzleTileView *tileView = (PuzzleTileView *)[self.allTiles objectAtIndex:panGesture.view.tag]; 

    CGFloat x = 0.0;
    CGFloat y = 0.0;

    // x and y are calculated.
    [tileView setTransform:CGAffineTransformMakeTranslation(x, y)];

    break;
}
4

1 回答 1

0

如果您有多个图像,这一定是一个简单的问题。我们很多人都毫无意外地拖着 UIImageView。您的代码中没有什么明显的(尽管我对不同的变量/类名感到困惑),所以您可能需要给我们一个更全面的代码示例。您可能会尝试添加一些调试消息(例如,viewDidLoad在方法中再次记录您的视图的子视图计数tileDragged)。

我从您的评论中得知您终于解决了问题。恭喜!

于 2012-07-09T15:26:48.757 回答