捏缩放总是使用左上角作为原点

时间:2014-08-04 18:03:23

标签: ios objective-c xcode uiimageview uigesturerecognizer

我添加了一个UIImageView,它比主视图小,并在其中放入两个手势。:

- (IBAction)pinch:(UIPinchGestureRecognizer *)recognizer
{
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;
}
- (IBAction)Pan:(UIPanGestureRecognizer *)recognizer
{
    CGPoint translation = [recognizer translationInView:self.view];
    recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
                                         recognizer.view.center.y + translation.y);
    [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}

虽然“Pan”工作完美,拖动图像,但音高不能正常工作。每次放大或缩小时,UIImageView的原点都会弹回我在故事板中选择的位置。我错过了什么?我复制了样本here中的代码,它可以按预期完美地运行。

1 个答案:

答案 0 :(得分:1)

所以诀窍是我使用的样本有"使用自动布局"禁用。 Autolayout功能可防止代码将新位置应用于视图(有时)。由于XCode 4.3自动启用了Autolayout功能(之前没有),因此当您逐步重建示例时,如果您下载了它,它将与示例的行为不同,如果它已经足够老了。