【发布时间】: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];
}
}
【问题讨论】:
标签: ios uiscrollview zooming uigesturerecognizer