2013-01-03 25 views
0

对于绘制图形,我在基于MonoTouch的iPhone应用程序中使用了coreplot library一段时间,但对于iOS 6.0,已经令人讨厌的绑定问题变得如此之多以至于我决定放弃它对于本机用C#编写的库。使用MonoTouch实现真正的捏合和缩放OxyPlot 2D库

搜索我发现了优秀的OxyPlot 2D library,更具体地说是由dvkwong制作的MonoTouch端口。

该库工作正常,并具有大量有用的功能,但其输出只是一个呈现的位图UIImage。

这意味着我需要将自己的捏和缩放功能添加到库中。

基于dvkwong初步示例的当前实现使用UIScrollView缩放和缩放添加到简单子视图的结果位图图像。

这不是一个好的解决方案,因为当缩放位图的别名变得可见时,并且如果分辨率增加,文本字体变得不可读,因为未针对当前缩放分辨率进行优化。

我需要每次以正确的分辨率呈现图像,而不使用UIScrollView,而只是重写自定义UIView中的DrawRect()调用。

但是,如何重现Apple UIScrollView的捏缩放手势并绘制OxyPlot绘图模型的正确子目录?

我试图实现此方法建议在这里:

position the pinched view between the two fingers

但它不工作,因为我需要知道子RECT画画,不应用变换矩阵。此外,OxyPlot库中没有“绘制子矩形”方法,因此我需要在图像上下文中设置一个剪贴画,然后首先绘制一个更大的图像,然后剪裁它。这显然太慢了,因为在某些缩放级别下图像会变得很大(我需要用户可以无限放大图形的任何部分)。

任何帮助表示赞赏。 在此先感谢。

回答

0

我自己解决了这个问题。 我已经创建了OxyPlot 2D库的另一个MonoTouch端口,这次支持Pan &捏放缩放手势。我还添加了iPad支持。 现在我们有一个MonoTouch的原生C#绘图库。

您可以在MIT许可下在这里下载:

https://github.com/Emasoft/OxyPlot.2DGraphLib.MonoTouch