2013-01-03 59 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