防止UIScrollView移动内容到左上angular

我有一个UIScrollView包含的UIImageView 。 图像(通常)很大,所以用户可以缩小图像以查看整个图像。

但是,缩小时, UIScrollView会将ImageView捕捉到滚动视图的左上angular。 我希望这可以由用户定位,并没有find一种方法来“closures”。

这有点像总是允许滚动,而不是只允许在图像放大时滚动。也许这太重要了吗?

任何人都知道的方式? 最初,我只是想手动创build这个function。 但UIImageViews不喜欢调整到新的尺寸(我已经尝试了一切,不能让UIImageViewresize,除非我从图像删除图片,改变框架,并重新添加它)。

我结束了禁用UIScrollViewpanGestureRecognizer和自定义的底层。

以下是关于如何禁用它的快速片段:

 // Disable our GestureRecognizer for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers){ if ([[NSString stringWithFormat:@"%@",[gesture class]] isEqualToString:@"UIScrollViewPanGestureRecognizer"]){ [gesture setEnabled:NO]; break; } } 

这里有一些黑客工作,但这是由于UIScrollViews将GestureRecognizer的类更改为“UIScrollViewPanGestureRecognizer”。 如果你尝试使用这个类,那么编译器会吼你(这里可能有更好的解决scheme)。

如果您在UIScrollView位置0,0处findUIImageView ,那么总是会在左上方。 如果您希望它在视图中小于视图的中心位置,则需要将其放置在该视图中。 检查其大小是否大于或小于滚动视图。 如果它小于滚动视图,则将其中心设置为与滚动视图相同。

请在这里查看类似问题的答案