【问题标题】:Zooming in a UIScrollView to a especific cordinate (IPAD)将 ScrollView 放大到特定坐标 (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];
    }
}

【问题讨论】:

    标签: ios uiscrollview zooming uigesturerecognizer


    【解决方案1】:

    使用UIScrollViewzoomToRect: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 中访问子视图,其中是页面...完美运行。
    猜你喜欢
    • 2021-12-25
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多