将 ScrollView 放大到特定坐标 (IPAD)
Posted
技术标签:
【中文标题】将 ScrollView 放大到特定坐标 (IPAD)【英文标题】:Zooming in a UIScrollView to a especific cordinate (IPAD) 【发布时间】:2014-02-14 00:57:58 【问题描述】:我有一个UIScrollView
,它显示一个 pdf 页面。我已经实现了单击手势来隐藏/显示屏幕上的工具栏和双击放大和缩小......问题是放大总是在页面的中心,我希望它放大到哪里用户最后一次点击。我已经保存了最后一次触摸的CGPoint
,但我不知道如何在放大时使用它...这是我的一些代码,感谢您的帮助,谢谢。
代码已更新(工作)
@implementation PDFScrollView //custom UIScrollView
CGPoint lastTouch;
CGFloat ZOOM_MIN;
CGFloat ZOOM_MAX;
UIView* PDFView;
-(void) gestureDoubleTap
if ([self zoomScale]==ZOOM_MAX)
[self setZoomScale:ZOOM_MIN animated:YES];
else
[self zoomToRect:CGRectMake(lastTouch.x, lastTouch.y, 0, 0) animated:YES]
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
lastTouch = [(UITouch*)[touches anyObject] locationInView:self.PDFView];
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
return self.PDFView;
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
if ([self zoomScale]<ZOOM_MIN)
[self setZoomScale:ZOOM_MIN animated:YES];
else if ([self zoomScale]>ZOOM_MAX)
[self setZoomScale:ZOOM_MAX animated:YES];
【问题讨论】:
【参考方案1】:使用UIScrollView
的zoomToRect:animated
方法
【讨论】:
哇,这么简单!?,应该已经阅读了文档,谢谢兄弟 我有点奇怪的结果。为什么它使用 rect 而没有 cgpoint?我试过:[self zoomToRect:CGRectMake(lastTouch.x, lastTouch.y, 0, 0) animated:YES];和 [self zoomToRect:CGRectMake(lastTouch.x, lastTouch.y, 100, 100) 动画:YES];缩放是不可预测的 已修复...我更改为 touchesBegan 并在 locationInView:self 而不是 self 中访问子视图,其中是页面...完美运行。以上是关于将 ScrollView 放大到特定坐标 (IPAD)的主要内容,如果未能解决你的问题,请参考以下文章