我有一个单独的UIView
,我在UIViewController
中使用它,它最初会加载,但是当我再次点击按钮时,我希望它重新加载,因为它有一个绘制图形的方法,需要在视图加载时绘制图形。
#import <UIKit/UIKit.h>
#import "ECGraph.h"
#import "ECGraphItem.h"
#import "CereniaAppDelegate.h"
@class GraphsViewController;
@interface Display : UIView {
NSArray *percentages;
CereniaAppDelegate*appDelegate;
}
@property(nonatomic,retain)NSArray*percentages;
-(void) setPercentageArray:(NSArray*) array;
@end
实现文件
#import "Display.h"
#import "ECGraph.h"
#import "CereniaAppDelegate.h"
@implementation Display
@synthesize percentages;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGContextRef _context = UIGraphicsGetCurrentContext();
ECGraph *graph = [[ECGraph alloc] initWithFrame:CGRectMake(70,-70,800,200) withContext:
_context isPortrait:NO];
appDelegate=[[UIApplication sharedApplication]delegate];
ECGraphItem *item1 = [[ECGraphItem alloc] init];
ECGraphItem *item2 = [[ECGraphItem alloc] init];
ECGraphItem *item3 = [[ECGraphItem alloc] init];
item1.isPercentage = YES;
int value=(int)roundf(appDelegate.graphValueOne);
item1.yValue=value;
item1.width = 70;
item1.name = @"Unvaccinated horse";
int value1=(int)roundf(appDelegate.graphValueTwo);
item2.isPercentage = YES;
item2.yValue=value1;
item2.width = 70;
item2.name = @"Annually Vaccinated horse";
int value3=(int)roundf(appDelegate.graphValueThree);
item3.isPercentage = YES;
item3.yValue=value3;
item3.width = 70;
item3.name = @"Semi-Annually vaccinated horse";
NSArray *items = [[NSArray alloc] initWithObjects:item1,item2,item3,nil];
[graph setXaxisTitle:@""];
[graph setYaxisTitle:@"Risk"];
[graph setDelegate:self];
[graph setBackgroundColor:[UIColor lightGrayColor]];
[graph drawHistogramWithItems:items lineWidth:2 color:[UIColor blackColor]];
}
-(void) setPercentageArray:(NSArray*) array
{
percentages = array;
NSString*test=[percentages objectAtIndex:0];
NSLog(test);
}
- (void)dealloc {
[super dealloc];
}
@end