阻止UIScrollView将内容移动到左上角

时间:2011-03-15 20:24:09

标签: objective-c xcode ios uiscrollview uiimageview

UIImageView中包含UIScrollView。图像(通常)很大,因此用户可以将其缩小以查看整个图像。

在缩小时,UIScrollViewImageView捕捉到滚动视图的左上角。我希望用户可以定位它,并且还没有找到“关闭它”的方法。

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

有人知道吗?最初,我只是想手动创建这个功能。但是UIImageViews不喜欢调整到新的大小(我已经尝试了所有内容而无法调整大小UIImageView除非我从imageView删除图片,更改框架,然后重新调整加上它。)

3 个答案:

答案 0 :(得分:5)

我最终禁用了UIScrollView的{​​{1}}并在自定义中进行了修补。

以下是关于如何禁用它的快速摘录:

panGestureRecognizer

那里有一些黑客工作,但这是因为// Disable our GestureRecognizer for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers){ if ([[NSString stringWithFormat:@"%@",[gesture class]] isEqualToString:@"UIScrollViewPanGestureRecognizer"]){ [gesture setEnabled:NO]; break; } } 已经将GestureRecognizer的类改为“UIScrollViewPanGestureRecognizer”。如果你试图使用那个类,编译器会对你大喊大叫(那里可能有更好的解决方案)。

答案 1 :(得分:1)

如果您在UIImageView的位置0,0找到UIScrollView,那么它总是在左上角。如果您希望它在滚动视图中居中时小于视图,则需要将其放置在那里。检查其-size是大于还是小于滚动视图。如果它小于滚动视图,请将其-center设置为与滚动视图相同。

答案 2 :(得分:0)

在类似问题here

上查看我的答案