2011-03-15 65 views
3

我有一个UIImageView包含在UIScrollView。图像(通常)很大,因此用户可以缩小图像以查看整个图像。防止UIScrollView移动内容到左上

在缩小,不过,UIScrollView卡的ImageView到滚动视图的左上角。我希望这可以由用户定位,并且还没有找到“关闭”的方法。

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

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

回答

4

我最终禁用了UIScrollViewpanGestureRecognizer,并在自定义中禁用了底层。

下面是关于如何将其禁用快速片段:

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

一个黑客在职那里一点,但它是由于这样的事实,UIScrollViews已经改变了GestureRecognizer到的类“UIScrollViewPanGestureRecognizer。”如果你尝试使用这个类,那么编译器会对你大叫(这里可能有更好的解决方案)。

+1

'如果([gestureRecogniser isMemberOfClass:NSClassFromString(@ “UIScrollViewPanGestureRecognizer”)])'' – Max 2012-05-24 23:19:06

+0

如果([gestureRecogniser isKindOfClass:NSClassFromString(@ “UIScrollViewPanGestureRecognizer”)])' – nacho4d 2012-06-08 04:02:34

+0

上有'UIScrollView'一个'panGestureRecognizer'特性作为避免这种黑客攻击的iOS 5。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html#//apple_ref/occ/instp/UIScrollView/panGestureRecognizer – Robert 2013-11-07 15:32:27

1

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

+0

这完全适用保持的UIImageView在滚动视图的中心,但如果你知道一种方法来保持的UIImageView在它拖动到的位置我在想,而不是回弹到中心? – Chewmieser 2011-03-15 20:50:59

0

检查我的回答类似的问题here

+0

嗨坦尼娅,我也评论过你链接的答案。这个答案也是一样的:你正在回答一个已经被正确回答的老问题。你能否在你的帖子中解释为什么你的答案更好,或者在某些情况下比其他答案更可取? – 2017-05-29 14:39:51