我在iOS應用程序上使用FusionCharts。iOS上的FusionCharts:隱形的第二個圖表
目前我有一個視圖控制器與兩個不同的UIWebViews,從不同的HTML文件加載兩個不同的圖表。
問題是,兩個圖表都呈現,但其中一個是不可見的,你可以在屏幕截圖中看到。
它只能一次處理一張圖表。我怎樣才能解決這個問題?!
我在iOS應用程序上使用FusionCharts。iOS上的FusionCharts:隱形的第二個圖表
目前我有一個視圖控制器與兩個不同的UIWebViews,從不同的HTML文件加載兩個不同的圖表。
問題是,兩個圖表都呈現,但其中一個是不可見的,你可以在屏幕截圖中看到。
它只能一次處理一張圖表。我怎樣才能解決這個問題?!
這個問題的問題是有一個UIWebView它自己的明確的解釋採用自旋鎖機制或增加通過自定義渲染運行循環的時間看看下面的鏈接 http://double-slash.net/2010/10/18/using-multiple-ios-uiwebview-objects/可以固定兩種方式UIWebview。 請在這裏輸入驗證碼
@interface FCXTCustomWebView()
@property (assign) id idelegate;
@end
@implementation FCXTCustomWebView
- (id)init
{
self = [super init];
if (self)
{
self.delegate = self;
}
return self;
}
- (id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
self.delegate = self;
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.delegate = self;
}
return self;
}
- (void)setDelegate:(id<UIWebViewDelegate>)delegate
{
_idelegate = delegate;
}
- (void)stopRunLoop
{
CFRunLoopRef runLoop = [[NSRunLoop currentRunLoop] getCFRunLoop];
CFRunLoopStop(runLoop);
}
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[self performSelector:@selector(stopRunLoop) withObject:nil afterDelay:.01];
if ([_idelegate respondsToSelector:@selector(webView:didFailLoadWithError:)])
{
[_idelegate webView:webView didFailLoadWithError:error];
}
}
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ([_idelegate respondsToSelector:@selector(webView:shouldStartLoadWithRequest:navigationType:)])
{
return [_idelegate webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];
}
else
{
return YES;
}
}
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
[self performSelector:@selector(stopRunLoop) withObject:nil afterDelay:.01];
if ([_idelegate respondsToSelector:@selector(webViewDidFinishLoad:)])
{
[_idelegate webViewDidFinishLoad:webView];
}
}
- (void) webViewDidStartLoad:(UIWebView *)webView
{
[self performSelector:@selector(stopRunLoop) withObject:nil afterDelay:.1];
if ([_idelegate respondsToSelector:@selector(stopRunLoop)])
{
[_idelegate webViewDidStartLoad:webView];
}
}
- (void) loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
{
[super loadHTMLString:string baseURL:baseURL];
CFRunLoopRunInMode((CFStringRef)NSDefaultRunLoopMode, 1.5, NO);
}
@end
這個回覆可能太晚了。我遇到了與HighCharts相同的問題。 您不需要子類UIWebView。您需要爲每個圖形擁有不同的Javascript文件。這將工作。
您是否檢查是否有重複的ID?你使用的是最新的FusionCharts(3.3.0.18739)嗎? – 2013-03-21 22:57:11