1)我需要繪製一個日期爲xAxis並跟蹤結果值爲yAxis的圖形,其中我需要針對不同的2時間跟蹤顯示一天的多個點並繪製散點圖根據iMoodJournal App中該特定日的平均值。
2)I需要導出圖表圖像或定製的PDF,其中我需要完整的圖形不僅被顯示在屏幕上的圖形意味着我需要隱藏部分作爲滾動也是在圖片。 隨着圖形顯示在屏幕上,我成功導出爲圖像。
在此先感謝
1)我需要繪製一個日期爲xAxis並跟蹤結果值爲yAxis的圖形,其中我需要針對不同的2時間跟蹤顯示一天的多個點並繪製散點圖根據iMoodJournal App中該特定日的平均值。
2)I需要導出圖表圖像或定製的PDF,其中我需要完整的圖形不僅被顯示在屏幕上的圖形意味着我需要隱藏部分作爲滾動也是在圖片。 隨着圖形顯示在屏幕上,我成功導出爲圖像。
在此先感謝
我們可以使用下面的代碼,以圖形的部分是不可見的屏幕截圖:
- (IBAction) renderScrollViewToImage
{
UIImage* image = nil;
UIGraphicsBeginImageContext(_scrollView.contentSize);
{
CGPoint savedContentOffset = _scrollView.contentOffset;
CGRect savedFrame = _scrollView.frame;
_scrollView.contentOffset = CGPointZero;
_scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height);
[_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
_scrollView.contentOffset = savedContentOffset;
_scrollView.frame = savedFrame;
}
UIGraphicsEndImageContext();
if (image != nil) {
[UIImagePNGRepresentation(image) writeToFile: @"/tmp/test.png" atomically: YES];
system("open /tmp/test.png");
}
}
雖然這可能不是滿足您的所有要求,但我會建議LineGraph供應第一點。
一旦你在視圖中有圖形,你可以創建內存位圖並保存爲UIImage。
編輯:
使用下面的代碼的UIView轉換成UIImage的。
#import <QuartzCore/QuartzCore.h>
+ (UIImage *) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
這是可能與核心情節。
Core Plot包含的示例應用程序中有許多線圖(散點圖)示例。它有很多選項來自定義圖形的外觀。
要使圖形大於屏幕,不要將其添加到託管視圖。根據需要調整圖層的大小,並設置繪圖空間以顯示所有數據。使用-imageOfLayer
方法創建圖形或-dataForPDFRepresentationOfLayer
以創建PDF。
首先感謝您的回覆 1)您可以從示例中添加任何示例應用鏈接或示例的名稱,以幫助我滿足我的要求。 2)如果有一些代碼或鏈接顯示這更有幫助。 –
* Plot Gallery *示例應用程序具有Core Plot支持的每種繪圖類型的樣本。對於離屏渲染,將圖形設置爲與您在屏幕上顯示時完全相同,但不要將其添加到託管視圖中,並將尺寸設置爲最終圖像所需的大小。 –
@EricSkroch它可能在覈心圖框架中拖放陰謀 – Nagarajan
你能告訴我如何創建的內存位圖鍵入我們將它保存爲完整的圖形而不是屏幕顯示。 –
如果您使用創建UIView的LineGraph,我已經添加了額外的代碼來轉換爲圖像。 – Jailbroken
我認爲它只捕獲當前顯示的屏幕不是全屏:) –