如何强制取消UIScrollView
上的缩放开放缩放手势,例如当用户放大到足够远以触发新操作时?UIScrollView并取消缩放缩放手势
2
A
回答
4
为了防止用户控制器缩放和平移,但仍然允许编程缩放和平移滚动视图,最好的方法是覆盖子类中的:方法。
-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
//Prevent any of the default panning and zooming controls from working
gestureRecognizer.enabled = NO;
[super addGestureRecognizer:gestureRecognizer];
return;
}
每个手势识别仅仅是禁用,为更好的控制(为前。使平移控制,但只允许通过例如双击缩放),你只需通过-isKindOfClass:
检查传入手势识别和禁用为适当。
-(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
//Prevent zooming but not panning
if ([gestureRecognizer isKindOfClass:[UIPinchGestureRecognizer class]])
{
gestureRecognizer.enabled = NO;
}
[super addGestureRecognizer:gestureRecognizer];
return;
}
希望这会有所帮助。
2
这个怎么样:
-(void)handlePinchGesture:(UIPinchGestureRecognizer *)sender
{
if (![sender isEnabled])
{
[sender setEnabled:YES];
}
if (sender.state == UIGestureRecognizerStateChanged)
{
if (sender.scale > 2.0)
{
NSLog(@"Upper bound reached");
[sender setEnabled:NO];
}
else if (sender.scale < 0.75)
{
NSLog(@"Lower bound reached");
[sender setEnabled:NO];
}
}
}
只需注册这selector(handlePinchGesture:)
与手势识别。这会形成一种“一次性”的夹点处理程序,当它达到上限或下限时停止。
1
我发现的一个蛮力解决方案是删除并重新添加接收触摸的视图,因为只要用户不会结束手势,我的(子)scrollview就不会结束对缩放的反应。
在ScrollViews中,如果您在用户滚动浏览大量内容时删除/添加子视图,那么通常会执行此操作,因此甚至无需编写其他代码。
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
if (scrollView.zoomScale < 0.65)
{
// some actions
[self myactionstodo];
// force cancel zoom gesture by usual reload (remove and re-add subviews)
[self reloadSV:currentpage];
}
}
相关问题
- 1. 用缩放手势缩放UIImageView
- 2. 捏(缩放)手势不正确缩放
- 3. 禁用手动缩放UIScrollView
- 4. AS3 - 缩放手势获取缩放方向?
- 5. 捏缩放手势android
- 6. IKImage手势缩放旋转
- 7. 使用手势缩放FrameLayout
- 8. 如何重置(即取消缩放)UIScrollView?
- 9. UIScrollView不缩放
- 10. UIImageView缩放UIScrollView
- 11. Intellij IDEA on mac:如何禁用缩放手势进行缩放
- 12. 问题缩放的UIImageView与缩放手势
- 13. 禁用旋转,平移和缩放缩放手势
- 14. UIScrollview子视图缩放后无法识别平移手势
- 15. iPhone的UIScrollView,调用平移和缩放手势选择programaticaly
- 16. 启用UIScrollView缩放重置缩放视图转换的缩放
- 17. 缩放在MonoTouch UIScrollView
- 18. UIImageView和UIScrollView缩放
- 19. UIScrollView +缩放+滑动
- 20. 轻松缩放UIScrollView
- 21. UIScrollView,滑动,缩放
- 22. 使用UIScrollView缩放
- 23. UILabel缩放与UIScrollView
- 24. UIScrollView没有缩放
- 25. UIScrollView不会缩放
- 26. 缩放通过捏手势的UICollectionView
- 27. 的UIImageView手势(缩放,旋转)问题
- 28. 围绕手势点旋转/缩放
- 29. SVG:使用javascript缩放手势
- 30. 缩放手势不与ImageView的
实际上,这会永久禁用该手势。这些问题表明了以编程方式切换手势的能力。没有? – dugla 2013-01-23 23:42:00
我们可以通过[pageScrollView removeGestureRecognizer:pageScrollView.pinchGestureRecognizer]来做到这一点; ,那么为什么要继承? – Xeieshan 2014-06-22 18:56:49