如何缩放 iOS 绘图应用程序?

Posted

技术标签:

【中文标题】如何缩放 iOS 绘图应用程序?【英文标题】:How to zoom for an iOS drawing app? 【发布时间】:2011-07-25 00:18:12 【问题描述】:

我正在为 iPad 制作一个绘图应用程序,用户可以用一根手指绘制线条和矩形。但是,我正在努力添加缩放功能。

我当前代码的一些背景信息:

有一个 appdelegate 可以设置视图控制器 大部分动作发生在视图控制器内,包括 IBAction、弹出框等。 xib 文件使用我制作的自定义视图,这是所有绘图动作发生的地方

这是我到目前为止所做的: 在 viewDidLoad 里面,我有

    [scrollView setContentSize:CGSizeMake(768, 1024)]; 
    [scrollView setMinimumZoomScale:0.5];
    [scrollView setMaximumZoomScale:5];
    [scrollView setDelegate:self];

在我的 xib 文件中,我尝试将 UIScrollView 扔到我的自定义视图上(并建立 IB 连接),但当然,它覆盖了我的自定义视图,您无法绘制。我通过放置 UIScrollView 和我自己的自定义视图来尝试相反的操作,但我仍然无法绘制。

有什么建议吗?

【问题讨论】:

你能分享你的最终解决方案吗?您最终是如何在绘图应用程序中实现缩放的?我自己也在寻找一个有效的解决方案:***.com/questions/18181707/drawing-on-a-zoomable-view 好吧,我的实习还没来得及完成就结束了 【参考方案1】:

将其添加到 .h 文件中的 viewController 中:

<UIScrollViewDelegate>

然后在你的 .m 文件中:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
    return backgroundImage;


- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 
    NSLog(@"scrollViewDidEndZooming");

另外,请确保在您的 xib 中,滚动视图的委托链接到文件的所有者。

编辑 1:

【讨论】:

您好,我正在尝试您的建议。我的 .h 文件和 IB 中已经有了 UIScrollViewDelegate,我将滚动视图委托设置为文件的所有者。但是,仍然存在两个问题:我无法绘制线条或形状,当我缩小时,底部工具栏也会缩小。我该如何纠正这些? 你的工具栏在 ScrollView 里面吗? 我的工具栏位于自定义视图的顶部。然后我扔了一个 UIScrollVIew 过来。这现在更有意义了,所以我假设我删除了工具栏,放置 UIScroll 视图,然后添加我的工具栏?有没有更简单的方法可以将工具栏向上移动一层?我会试试这个。谢谢 你“扔了一个 UIScrollViewOver”是怎么回事?您的工具栏应位于“视图透视图”和“NIB 分层透视图”的上方。我的意思是,我应该能够看到 UIScrollView 和 ToolBar,并在不干扰 ToolBar 的情况下使用滚动视图。检查我的编辑。

以上是关于如何缩放 iOS 绘图应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何忽略缩放图像视图 Swift 3

在 ios 的滚动视图中绘制缩放的图像视图?

如何在pyqtgraph中缩放绘图

iOS 屏幕坐标和缩放

闪亮的双击缩放绘图交互无法正常工作

Plotly 绘图无法在模态中自动缩放