0

我有应用程序来创建图表我已经创建了一个基于视图的应用程序,然后在其中添加了用于创建图表的代码,但它没有显示图表。如果使用相同的代码创建一个单独的 UIView 那么它的工作原理不是

   #import <UIKit/UIKit.h>
  #import "ECGraph.h"
  #import "ECGraphItem.h"
 @class GraphsViewController;
 @interface Display : UIView {

NSArray *percentages;

int myY;
ECGraph *graph;
ECGraphItem *item1;
ECGraphItem *item2;


   }
  @property(nonatomic,retain)NSArray*percentages;

 -(void) setPercentageArray:(NSArray*) array;

 @end


 #import "Display.h"
 #import "ECGraph.h"
 @implementation Display
 @synthesize percentages;

- (id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];
if (self) {
    // Initialization code.
}
return self;
}


- (void)drawRect:(CGRect)rect {


CGContextRef _context = UIGraphicsGetCurrentContext();



graph = [[ECGraph alloc] initWithFrame:CGRectMake(500,-320,320, 200) withContext:_context isPortrait:NO];


item1 = [[ECGraphItem alloc] init];

item2 = [[ECGraphItem alloc] init];
/*
ECGraphItem *item1 = [[ECGraphItem alloc] init];

ECGraphItem *item2 = [[ECGraphItem alloc] init];*/

item1.isPercentage = YES;



item1.yValue=myY;




item1.width = 35;
item1.name = @"item1";

item2.isPercentage = YES;
item2.yValue =17;

item2.width = 35; 
item2.name = @"item2";



[graph setXaxisTitle:@"name"];
[graph setYaxisTitle:@"Percentage"];
[graph setGraphicTitle:@"Histogram"];
[graph setDelegate:self];
[graph setBackgroundColor:[UIColor colorWithRed:220/255.0 green:220/255.0 blue:220/255.0 alpha:1]];



NSArray *items = [[NSArray alloc] initWithObjects:item1,item2,nil];


[graph drawHistogramWithItems:items lineWidth:2 color:[UIColor blackColor]];




}

我在 GraphsViewController 中添加了这个视图,但它没有显示任何内容

// 实现 viewDidLoad 以在加载视图后进行额外的设置,通常来自 nib。

 - (void)viewDidLoad {
[super viewDidLoad];

[self createGraph];



percentages = [NSArray arrayWithObjects:@"80",@"17", nil];

display = [[Display alloc] init];

[self.view addSubview:display];

[display setPercentageArray:percentages];

}
4

1 回答 1

3

您应该在单独的UIView对象中进行绘图并将其作为子视图添加到视图控制器的视图中。这就是它应该工作的方式。

UIView 类使用按需绘制模型来呈现内容。

来源:查看 iOS 编程指南

UIViewController 类为所有 iOS 应用程序提供了基本的视图管理模型。...视图控制器管理构成应用程序用户界面一部分的一组视图。

来源:UIViewController 类参考

编辑:

// ...
display = [[Display alloc] init];
CGRect dFrame = CGRectMake(50, 50, 320, 200); // change these to whatever values you need
[display setFrame:dFrame];
[self.view addSubview:display];
于 2012-05-15T06:35:36.833 回答