如何缩放 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 绘图应用程序?的主要内容,如果未能解决你的问题,请参考以下文章