将 UIScrollView 放大到特定坐标 (IPAD)



我有一个显示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方法

最新更新