我有一個應用程序在同一個故事板上有一個UITableView
和一個自定義UIView
。 UIView
根據所選內容加載自定義圖表,並使用HighChart加載UIWebView
(數據和html都在本地存儲,不會通過網絡)。當選擇UITableViewCell時更新UIView
當我選擇UITableViewCell
時,視圖從不顯示。它加載子視圖(我是NSLog
ing到控制檯)和所有的數據是正確的,但顯示本身永遠不刷新。我試過在20多個不同的地方堅持[myCustomView setNeedsDisplay]
,但我開始覺得這是別的。
是否有可能是因爲我正在加載Web視圖的問題?是否在對我的UIWebView
準備做任何事情的異步調用之前重新繪製我的UIView
?測試這個最簡單的方法是什麼?
一些代碼更新(跳過一些,我會更加填寫的要求):
@implemention MainViewController
-(void)viewDidLoad {
***normal viewDidLoad stuff***
_myCustomView = [[MyCustomViewClass alloc] initWithFrame: CGRectMake(0,_tableview.frame.origin.y + _tableview.frame.size.height,_tableview.frame.size.width, 176)];
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomJsonDataObject *dataObject = [self.jsonDataArray objectAtIndex:[indexPath row]];
[_myCustomView redrawWithDataObject:dataObject];
}
@end
@implementation myCustomViewClass {
UIScrollView *scrollView
}
-(void)redrawWithDataObject:(MyCustomJsonDataObject *)dataObj {
scrollView = [[UIScrollView alloc] initWithFrame:etc];
// THere are 3 screens initialized: 1 chart data with a UIWebView, and two custom UIViews.
scrollView.contentSize = CGSizeMake(scrollView.size.width * 3, 176)
** initialize web view from custom class **
[scrollView addSubview:webView];
** initialize custom view from custom class **
[scrollView addSubview:UIView1];
** initialize custom view from custom class **
[scrollView addSubview:UIView2];
** set some scrollView properties (scrollable, paging, etc) **
[self addSubview:scrollView];
[self setNeedsDisplay];
}
自定義UIWebView
類從JSON
對象中獲取數據,並在當地的HTML文件替換JavaScript的佔位符變量,然後將新文件反饋回webView。其他兩個視圖只是一些簡單的標籤,用於填充自定義數據對象中的數據。
代碼你試過了什麼? – CoolMonster
你的代碼在哪裏?如何通過查看代碼來回答這個問題甚至是遠程可能的。可能是一千個不同的東西 –
我想爲你提供一些相關的代碼,但是有幾個問題:1)它是一個企業應用程序,這意味着代碼被認爲是專有的。 2)應用程序是巨大的,並且分割相關的代碼塊可能很困難。我正在嘗試從應用程序的其餘部分中分離出代碼的假複本。 – xianritchie