我有一个显示pdf页面的UIScrollView
。我已经实现了单击手势来隐藏/显示屏幕上的工具栏,并双击以放大和缩小......问题是放大始终位于页面中心,我希望它缩放用户上次点击的位置。我已经保存了最后一次触摸的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];
}
}
使用zoomToRect:animated
UIScrollView
方法