iOS 응용 프로그램에서 FusionCharts를 사용하고 있습니다.iOS의 FusionCharts : 보이지 않는 두 번째 차트
현재 다른 HTML 파일에서 두 개의 다른 차트를로드하는 두 개의 다른 UIWebViews보기 컨트롤러가 있습니다.
두 차트가 렌더링되지만 그 중 하나는 스크린 샷에서 볼 수있는 것처럼 보이지 않는 것이 문제입니다.
한 번에 하나의 차트에서만 작동합니다. 이 문제를 어떻게 해결할 수 있습니까?! 이 문제는
iOS 응용 프로그램에서 FusionCharts를 사용하고 있습니다.iOS의 FusionCharts : 보이지 않는 두 번째 차트
현재 다른 HTML 파일에서 두 개의 다른 차트를로드하는 두 개의 다른 UIWebViews보기 컨트롤러가 있습니다.
두 차트가 렌더링되지만 그 중 하나는 스크린 샷에서 볼 수있는 것처럼 보이지 않는 것이 문제입니다.
한 번에 하나의 차트에서만 작동합니다. 이 문제를 어떻게 해결할 수 있습니까?! 이 문제는
문제는 사용자 정의에 의해 실행 루프의 렌더링 시간 스핀 잠금 장치를 채택 또는 증가 링크 http://double-slash.net/2010/10/18/using-multiple-ios-uiwebview-objects/ 그것은 두 가지 방법으로 해결할 수 있습니다 아래의 체크 아웃 명확한 설명을 위해있는 UIWebView의 그것 자체로이다 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)를 사용하고 있습니까? –