我正在开发一个应用程序,通过使用UIScrollView
来显示UIImages
的图库,我的问题是,如何点击zoom
并双击到zoom
,在处理UIScrollView
时它是如何工作的。如何点击缩放和双击在iOS中缩小?
19
A
回答
38
您需要实现UITapGestureRecognizer - 文档here - 在你的viewController
- (void)viewDidLoad
{
[super viewDidLoad];
// what object is going to handle the gesture when it gets recognised ?
// the argument for tap is the gesture that caused this message to be sent
UITapGestureRecognizer *tapOnce = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOnce:)];
UITapGestureRecognizer *tapTwice = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTwice:)];
// set number of taps required
tapOnce.numberOfTapsRequired = 1;
tapTwice.numberOfTapsRequired = 2;
// stops tapOnce from overriding tapTwice
[tapOnce requireGestureRecognizerToFail:tapTwice];
// now add the gesture recogniser to a view
// this will be the view that recognises the gesture
[self.view addGestureRecognizer:tapOnce];
[self.view addGestureRecognizer:tapTwice];
}
基本上这个代码是说,当一个UITapGesture
在self.view
方法tapOnce或tapTwice注册将在self
被称为取决于它是单击还是双击。因此,你需要把这些龙头方法添加到您的UIViewController
:
- (void)tapOnce:(UIGestureRecognizer *)gesture
{
//on a single tap, call zoomToRect in UIScrollView
[self.myScrollView zoomToRect:rectToZoomInTo animated:NO];
}
- (void)tapTwice:(UIGestureRecognizer *)gesture
{
//on a double tap, call zoomToRect in UIScrollView
[self.myScrollView zoomToRect:rectToZoomOutTo animated:NO];
}
希望帮助
2
雨燕3.0版本上双击放大两倍。
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!
某处(通常在viewDidLoad中):
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(onDoubleTap(gestureRecognizer:)))
tapRecognizer.numberOfTapsRequired = 2
scrollView.addGestureRecognizer(tapRecognizer)
处理程序:
func onDoubleTap(gestureRecognizer: UITapGestureRecognizer) {
let scale = min(scrollView.zoomScale * 2, scrollView.maximumZoomScale)
if scale != scrollView.zoomScale {
let point = gestureRecognizer.location(in: imageView)
let scrollSize = scrollView.frame.size
let size = CGSize(width: scrollSize.width/scale,
height: scrollSize.height/scale)
let origin = CGPoint(x: point.x - size.width/2,
y: point.y - size.height/2)
scrollView.zoom(to:CGRect(origin: origin, size: size), animated: true)
print(CGRect(origin: origin, size: size))
}
}
相关问题
- 1. ios图表缩小双击后缩回
- 2. 捏和双击缩放NetworkImageView
- 3. 图像不缩放在iOS双击
- 4. 动画UIButton放大和缩小点击
- 5. jvectormap平滑放大和缩小点击
- 6. 双击缩放 - iOS设备,钛
- 7. 双击缩放和缩放以放大ImageView在android
- 8. Android双击滑动缩放
- 9. OpenLayers:禁用缩放双击
- 10. 防止捏缩放和双击缩放在UIWebview
- 11. 如何修改TouchImageView双击放大和缩小?
- 12. 如何achivie双击缩放API 2.2?
- 13. 如何在iOS上的MPMoviePlayerViewController上禁用单指双击缩放?
- 14. 双击缩放和hammer.js问题
- 15. 点击时缩放热点
- 16. 放大缩小鼠标点击Silverlight 2.0
- 17. 在webview上禁用双击缩放/取消缩放
- 18. 无论是双击还是点击缩放
- 19. 放大和缩小在IOS
- 20. 缩放与scrollView上点击
- 21. 如何缩放no。页面点击?
- 22. iOS显示UIImage全屏启用缩放(捏和双击)启用
- 23. 页面缩小点击
- 24. 如何阻止右键单击并双击进行缩放?
- 25. Android WebView使用setWideViewPort,禁用双击缩放但保持缩放?
- 26. Android是双击缩放动画还是多步缩放?
- 27. 如何在Mupdf中实现双击缩放?
- 28. AS3放大和缩小鼠标点击不在注册
- 29. 防止没有jQuery的双击缩放
- 30. leaflet.js wms图层缩放无法双击
非常感谢您的回答,我会测试它并报告已经快有可能的。 – Bruno
有没有可能Webview识别触摸侧边webview中的链接 – Codesen
[tapOnce requireGestureRecognizerToFail:tapTwice];正是我所期待的。谢谢! – Bastek