- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个graphview.m,它以这种方式创建一个coreplotviewcontroller.view
CorePlotViewController *aCorePlotViewController = [[CorePlotViewController alloc] initWithNibName:@"CorePlotViewController" bundle:nil];
aCorePlotViewController.view.bounds = CGRectMake(0,0,896,605);
aCorePlotViewController.view.center = CGPointMake(576, 374.5);
[aCorePlotViewController.view setTag:99];
[self.view addSubview:aCorePlotViewController.view];
[aCorePlotViewController.view release];
现在我通过删除并再次添加来刷新图表。
[[self.view viewWithTag:99]removeFromSuperview];
CorePlotViewController *aCPView = [[CorePlotViewController alloc] initWithNibName:@"CorePlotViewController" bundle:nil];
aCPView.view.bounds = CGRectMake(0,0,896,605);
aCPView.view.center = CGPointMake(576, 374.5);
[aCPView.view setTag:99];
[self.view addSubview:aCPView.view];
[aCPView release];
但这会占用大量内存,最终我将无法为 CoreAnimation 分配更多内存(我会记录此错误)。
那么我该如何重新创建图表呢?推测使用在 coreplotviewcontroller.m 中创建方法来重绘图形。我当前的 CorePlotViewController.h 和 .m 代码如下
CorePlotViewController.h
#import <UIKit/UIKit.h>
#import "CorePlot-CocoaTouch.h"
#import "GraphView.h"
@interface CorePlotViewController : UIViewController <CPPlotDataSource>
{
CPXYGraph *graph;
NSMutableArray *dataForPlot;
NSMutableArray *dataForPlot2;
NSMutableArray *finalDatas;
NSMutableArray *numofdata;
NSMutableArray *numofdata2;
}
@property(readwrite, retain, nonatomic) NSMutableArray *dataForPlot;
@property(readwrite, retain, nonatomic) NSMutableArray *dataForPlot2;
@property(readwrite, retain, nonatomic) NSMutableArray *finalDatas;
@property(readwrite, retain, nonatomic) NSMutableArray *numofdata;
@property(readwrite, retain, nonatomic) NSMutableArray *numofdata2;
@end
CorePlotViewController.m
#import "MedicalBedAppDelegate.h"
#import "CorePlotViewController.h"
#import "UsageData.h"
#import "GraphView.h"
@implementation CorePlotViewController
@synthesize dataForPlot;
@synthesize dataForPlot2;
@synthesize finalDatas;
@synthesize numofdata,numofdata2;
-(NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot{
MedicalBedAppDelegate *appDelegate = (MedicalBedAppDelegate *)[[UIApplication sharedApplication] delegate];
if ([appDelegate.timetodisplay objectAtIndex:0] == @"4 Hours") {
return appDelegate.usagedatas.count;
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Hour") {
return appDelegate.usagedatas.count;
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"8 Minutes")
{
return appDelegate.usagedatas.count;
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Minute") {
return appDelegate.usagedatas.count;
}
}
- (void)viewDidLoad {
[super viewDidLoad];
MedicalBedAppDelegate *appDelegate = (MedicalBedAppDelegate *)[[UIApplication sharedApplication] delegate];
graph = [[CPXYGraph alloc] initWithFrame: self.view.bounds];
self.view = [[CPLayerHostingView alloc]initWithFrame:[UIScreen mainScreen].bounds];
CPLayerHostingView *hostingView = (CPLayerHostingView *)self.view;
hostingView.hostedLayer = graph;
graph.paddingLeft = 0.0;
graph.paddingTop = 0.0;
graph.paddingRight = 0.0;
graph.paddingBottom = 0.0;
//This applies the 'background color to the graph available themes are
//kCPDarkGradientTheme,kCPPlainWhiteTheme,KCPPlainBlackTheme,kCPStocksTheme,kCPSlateTheme
CPTheme *Theme =[CPTheme themeNamed:kCPSlateTheme];
[graph applyTheme:Theme];
CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-0.015) length:CPDecimalFromFloat(14.2)];
//plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-0.5) length:CPDecimalFromFloat(14.4)];
plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-0.015) length:CPDecimalFromFloat(19.85)];
//plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-1) length:CPDecimalFromFloat(19.85)];
CPLineStyle *lineStyle = [CPLineStyle lineStyle];
lineStyle.lineColor = [CPColor blackColor];
lineStyle.lineWidth = 0.0f;
CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;
axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"1"] decimalValue];
//axisSet.xAxis.majorIntervalLength = CPDecimalFromFloat(1.0);
axisSet.xAxis.minorTicksPerInterval = 9;
axisSet.xAxis.majorTickLineStyle = lineStyle;
axisSet.xAxis.minorTickLineStyle = lineStyle;
axisSet.xAxis.axisLineStyle = lineStyle;
axisSet.xAxis.minorTickLength = 5.0f;
axisSet.xAxis.majorTickLength = 10.0f;
axisSet.xAxis.labelOffset = 5.0f;
//axisSet.xAxis.majorTickLocations = 2;
axisSet.yAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"1"] decimalValue];
axisSet.yAxis.minorTicksPerInterval = 9;
axisSet.yAxis.majorTickLineStyle = lineStyle;
axisSet.yAxis.minorTickLineStyle = lineStyle;
axisSet.yAxis.axisLineStyle = lineStyle;
axisSet.yAxis.minorTickLength = 0.0f;
axisSet.yAxis.majorTickLength = 0.0f;
axisSet.yAxis.labelOffset = 5.0f;
//Alloc and init a Scatter plot
CPScatterPlot *breathRatePlot = [[CPScatterPlot alloc]initWithFrame:CGRectMake(90, 12, 200, 25)] ;
breathRatePlot.identifier = @"Breath Rate Plot";
breathRatePlot.dataLineStyle.lineWidth = 3.3f;
breathRatePlot.dataLineStyle.lineColor = [CPColor yellowColor];
breathRatePlot.dataSource = self;
[graph addPlot:breathRatePlot];
//Add Plot symbols to the points
CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol];
greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
greenCirclePlotSymbol.size = CGSizeMake(1.0 , 1.0);
breathRatePlot.plotSymbol = greenCirclePlotSymbol;
//Alloc and init a Scatter plot
CPScatterPlot *noOfMovementRegisteredPlot = [[CPScatterPlot alloc]initWithFrame:CGRectMake(90, 12, 200, 25)];
noOfMovementRegisteredPlot.identifier = @"Move Registered Plot";
noOfMovementRegisteredPlot.dataLineStyle.lineWidth = 2.3f;
noOfMovementRegisteredPlot.dataLineStyle.lineColor = [CPColor redColor];
noOfMovementRegisteredPlot.dataSource = self;
[graph addPlot:noOfMovementRegisteredPlot];
//Add Plot symbols to the points
CPPlotSymbol *greenCirclePlotSymbol2 = [CPPlotSymbol ellipsePlotSymbol];
greenCirclePlotSymbol2.fill = [CPFill fillWithColor:[CPColor greenColor]];
greenCirclePlotSymbol2.size = CGSizeMake(1.0, 1.0);
noOfMovementRegisteredPlot.plotSymbol = greenCirclePlotSymbol2;
//Get an instance of the appDelegate and set some vars to be used
NSInteger indexPRowArrayInteger;
NSString *indexPRowArrayString;
indexPRowArrayString = [appDelegate.indexPathRowArray objectAtIndex:0 ] ;
indexPRowArrayInteger = [indexPRowArrayString integerValue ];
// Add some initial data
NSMutableArray *contentArray =[[NSMutableArray alloc]init];
NSMutableArray *contentArray2 =[[NSMutableArray alloc]init];
NSNumber *BRNumber;
NSString *BRString;
NSNumber *NOMRNumber;
NSString *NOMRString;
NSString *DString;
NSNumberFormatter *f = [[NSNumberFormatter alloc]init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
//Datetime section
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] initWithTimeIntervalSinceNow:-4*60*60];//time from 4 hrs ago
NSString *theTime = [timeFormat stringFromDate:now];
NSDate *cDate1 = [timeFormat dateFromString:theTime];
NSDate *now1Hr = [[NSDate alloc] initWithTimeIntervalSinceNow:-1*60*60];//time from 1hr ago
NSString *theTime1Hr = [timeFormat stringFromDate:now1Hr];
NSDate *cDate1Hr = [timeFormat dateFromString:theTime1Hr];
NSDate *now8Mins = [[NSDate alloc] initWithTimeIntervalSinceNow:-8*60];//time from 8Mins ago
NSString *theTime8Mins = [timeFormat stringFromDate:now8Mins];
NSDate *cDate8Mins = [timeFormat dateFromString:theTime8Mins];
NSDate *now1Min = [[NSDate alloc] initWithTimeIntervalSinceNow:-1*60];//time from 1Min ago
NSString *theTime1Min = [timeFormat stringFromDate:now1Min];
NSDate *cDate1Min = [timeFormat dateFromString:theTime1Min];
NSUInteger i;
NSUInteger i2;
numofdata = [[NSMutableArray alloc]init];
numofdata2 = [[NSMutableArray alloc]init];
for ( i = 0; i < appDelegate.usagedatas.count; i++ ) {
//NSLog(@"appdelcount= %d",appDelegate.usagedatas.count);
UsageData *aUsageDataInstance = (UsageData *)[appDelegate.usagedatas objectAtIndex:i];
BRString = aUsageDataInstance.breathrate;
BRNumber = [f numberFromString:BRString];
DString = aUsageDataInstance.time;
NSDate *cDate2 = [timeFormat dateFromString:DString];
NSTimeInterval time = [cDate2 timeIntervalSinceDate:cDate1];
NSTimeInterval time1Hr = [cDate2 timeIntervalSinceDate:cDate1Hr];
NSTimeInterval time8Mins = [cDate2 timeIntervalSinceDate:cDate8Mins];
NSTimeInterval time1Min = [cDate2 timeIntervalSinceDate:cDate1Min];
if ([appDelegate.timetodisplay objectAtIndex:0] == @"4 Hours") {
id x = [NSNumber numberWithFloat: ((time/132)/9)];
id y = [NSNumber numberWithFloat:([BRNumber intValue]/1.975) ];
[contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
//calculation = (time(interval from how many hrs/mins ago) / seconds of 1 minor-interval of x-axis(NOT MAJOR,1major has 10 minor intervals)/9
//time = the number of seconds from the time in the database to the current time
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Hour") {
id x = [NSNumber numberWithFloat:((time1Hr/33.3)/9)];
id y = [NSNumber numberWithFloat:([BRNumber intValue]/1.975) ];
[contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"8 Minutes") {
id x = [NSNumber numberWithFloat: ((time8Mins/4.4)/9)];
id y = [NSNumber numberWithFloat:([BRNumber intValue]/1.975) ];
[contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Minute") {
id x = [NSNumber numberWithFloat: ((time1Min/0.53)/9)];
id y = [NSNumber numberWithFloat:([BRNumber intValue]/1.975) ];
[contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
}
self.dataForPlot = contentArray;
for ( i2 = 0; i2 < appDelegate.usagedatas.count; i2++ ) {
UsageData *aUsageDataInstance = (UsageData *)[appDelegate.usagedatas objectAtIndex:i2];
NOMRString = aUsageDataInstance.noofmovereg;
NOMRNumber = [f numberFromString:NOMRString];
DString = aUsageDataInstance.time;
NSDate *cDate2 = [timeFormat dateFromString:DString];
NSTimeInterval time = [cDate2 timeIntervalSinceDate:cDate1];
NSTimeInterval time1Hr = [cDate2 timeIntervalSinceDate:cDate1Hr];
NSTimeInterval time8Mins = [cDate2 timeIntervalSinceDate:cDate8Mins];
NSTimeInterval time1Min = [cDate2 timeIntervalSinceDate:cDate1Min];
if ([appDelegate.timetodisplay objectAtIndex:0] == @"4 Hours") {
id x2 = [NSNumber numberWithFloat: ((time/132)/9)];
id y2 = NOMRNumber;
[contentArray2 addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x2, @"x", y2, @"y", nil]];
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Hour") {
id x2 = [NSNumber numberWithFloat:((time1Hr/33.3)/9)];
id y2 = NOMRNumber;
[contentArray2 addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x2, @"x", y2, @"y", nil]];
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"8 Minutes") {
id x2 = [NSNumber numberWithFloat: ((time8Mins/4.4)/9)];
id y2 = NOMRNumber;
[contentArray2 addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x2, @"x", y2, @"y", nil]];
}
else if ([appDelegate.timetodisplay objectAtIndex:0] == @"1 Minute") {
id x2 = [NSNumber numberWithFloat: ((time1Min/0.53)/9)];
id y2 = NOMRNumber;
[contentArray2 addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x2, @"x", y2, @"y", nil]];
}
}
self.dataForPlot2 = contentArray2;
//release for memory management.
[dateFormat release];
[timeFormat release];
[now release];
[now1Hr release];
[now8Mins release];
[now1Min release];
[f release];
[noOfMovementRegisteredPlot release];
[breathRatePlot release];
[contentArray release];
[contentArray2 release];
}
-(NSNumber *)numberForPlot:(CPPlot *)plot
field:(NSUInteger)fieldEnum
recordIndex:(NSUInteger)index
{
NSNumber *num = [[dataForPlot objectAtIndex:index] valueForKey:(fieldEnum == CPScatterPlotFieldX ? @"x" : @"y")];
NSNumber *num2 = [[dataForPlot2 objectAtIndex:index] valueForKey:(fieldEnum == CPScatterPlotFieldX ? @"x" : @"y")];
if ([(NSString *)plot.identifier isEqualToString:@"Breath Rate Plot"])
{
if ( fieldEnum == CPScatterPlotFieldY )
num = [NSNumber numberWithDouble:[num doubleValue] ];
return num;
}
else {
num2 = [NSNumber numberWithDouble:[num2 doubleValue] ];
return num2;
}
}
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft );
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)dealloc {
[graph release];
[dataForPlot release];
[dataForPlot2 release];
[finalDatas release];
[numofdata release];
[numofdata2 release];
[super dealloc];
}
@end
最佳答案
使用[graph reloadData];
更新您的数据并重新绘制所有绘图。如果您不需要同时更新所有图,可以将 -reloadData
消息发送到各个图。
关于iphone - core-plot - 动态刷新图表 + iPad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624203/
我们知道,当使用 hibernate 对数据库进行批量更新时(即使在 HQL 中),所做的更改不会复制到存储在当前 session 中的实体。 所以我可以调用 session.refresh 来加载对
我正在做一个项目,所有的东西都保存在事件中,所以服务器需要一些时间来响应新数据。我正在使用 Fluent 等待使用 ajax 的页面,但是这个不使用任何 ajax。所以我想刷新页面检查是否有新项目,如
我有一个从 Vector 创建的 JTable。 如何刷新 JTable 以显示添加到 Vector 的新数据? 最佳答案 当 TableModel 发生更改时,您的 JTable 应该会自动更新。我
有没有办法使用下面的代码来刷新已经存在的 div id,而不是刷新时间? window.onload = startInterval; function startInterval() {
我更新了在 Shiny Server 上运行的 Shiny 应用程序使用的 DataSet.RData。但是, Shiny 的应用程序仍在旧数据上运行。我已通过浏览器历史记录清除并重新启动浏览器几次,
我的应用程序中有一个无限滚动的网格面板(ExtJs 4.2.1),类似于 this example .用户可以单击刷新按钮,然后必须使用数据库中的数据更新网格的行。我在刷新按钮处理程序中调用 stor
我不知道这三种方法中哪一种最适合我。他们都为我工作。有谁知道刷新、更新和重画之间的区别吗? 最佳答案 根据在线文档: Refresh - 重新绘制屏幕上的控件。 Call Refresh method
有什么办法吗 ICollectionView.Refresh() 或者 CollectionViewSource.GetDefaultView(args.NewValue).Refresh(); 在
这个问题已经有答案了: Updating address bar with new URL without hash or reloading the page [duplicate] (4 个回答)
我有一个 javascript 设置超时以在 10 秒后关闭 div,并且我想在 div 关闭时添加页面刷新。我正在使用的代码如下。 var container_close_sec = "1
我有一组具有以下名称的页面.... update1.php update2.php update3.php update4.php update5.php update6.php update7.ph
如果是则触发js函数。我可以使一个复选框保持选中状态,并在页面刷新时检查值并选中“checked”,并提交以下内容... checked="checked" /> 你都不记得触发js函数。 这是我的
我正在尝试刷新 php 脚本以在数据库更新时显示更新的内容。我首先构建了我的 php,然后刷新代码,然后合并它们。但是,脚本不会更新。有谁知道为什么吗? $(document).ready
当我要删除的节点扩展集合类型时,Grails中有一个错误阻止我使用removeFrom *。直接从关联中删除节点不会更新二级缓存。 A hasMany B 有什么方法可以使关联缓存手动无效或强制重新加
我正在使用 hibernate 和 mysql 来抽象一个数据库,以便在 java 驱动的网站中使用。我使用 hibernate 很好地解决了所有查询,但似乎无法弄清楚如何使用它进行更新、插入和删除,
如何通过调用 oncreateview 方法重新创建 fragment ?我有一个 fragment ,用于通过表单插入新数据,单击按钮后,我想通过删除在 EditText 中输入的数据来重新创建 f
当我从一个到另一个时,我试图刷新我的观点。我知道我应该将刷新代码放在 viewWillAppear 中,但我不知道该放什么代码。 你们能帮帮我吗? 谢谢! 最佳答案 在您看来,请调用 setNeeds
我正在开发 iPhone 应用程序并希望使用: CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serv
看到我已经创建了一个用于登录用户的脚本。而且我还添加了设置选项卡,以便用户可以编辑他们的设置!但是当我尝试它时,mysql 表中的数据发生了变化,但配置文件中显示的用户名和用户电子邮件保持不变!当我注
好的。这就是它的样子。 当我启动应用程序时,我从服务器收到的第一件事是数据: {name: "test", type: "checkbox" checked: true, } 这使得其中一个复选框
我是一名优秀的程序员,十分优秀!