3

我有UIView我正在使用的SeprateUIViewController最初加载但我希望当它加载时我再次单击按钮然后它应该重新加载因为它具有图形创建方法可以在视图加载时绘制图形

  #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
4

1 回答 1

6

您可以使用任何视图重绘

[view setNeedsDisplay];

因此,在您的刷新按钮上,您将更新 Display 类使用的数据,然后 setNeedsDisplay。

于 2012-12-18T06:56:21.037 回答