我的应用程序在同一个故事板上有UITableView
和自定义UIView
。 UIView
根据选择加载自定义图表,并使用HighChart加载UIWebView
(数据和html全部本地存储,不通过网络拉取)。
当我选择UITableViewCell
时,视图永远不会显示。它加载子视图(我NSLog
将其输出到控制台)并且所有数据都是正确的,但显示本身永远不会刷新。我已经尝试在{20}不同的地方坚持[myCustomView setNeedsDisplay]
,但我开始觉得这是其他的东西。
是否可能存在问题,因为我正在加载网络视图?在对UIView
的异步调用准备好做任何事情之前,它是否实质上重绘了我的UIWebView
?测试这个的最简单方法是什么?
更新了一些代码(跳过一些代码,我会按要求填写更多代码):
@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中。其他两个视图只是一组简单的标签,用于填充自定义数据对象中的数据。
答案 0 :(得分:0)
我想出了我的问题:
_myCustomView已经在故事板中定义,因此它正在初始化自己。当我在viewDidLoad中调用init方法时,看来我正在添加一个视图的SECOND实例,覆盖第一个,这就是为什么它显示为空白并且似乎没有刷新。当我在viewDidLoad中删除了视图的init方法时,它没有问题。