iOS / Xcode - drawRect:未在UIView子类中调用

时间:2012-03-08 23:59:37

标签: ios uiview uitabbarcontroller core-graphics drawrect

我正在开发一个主视图为UITabViewController的应用。在UITabViewController下有三个UIViewControllers和一个UITableViewController。在其中一个UIViewControllers下面是一个UIView和一个符合NSXMLParserDelegate的NSObject。以下是高级结构的概述:   AppDelegate:UIResponder     UIViewController1&厦门国际银行     UIViewController2&厦门国际银行     UIViewController3&厦门国际银行       UIView(CG电话在这里)       的NSXMLParser     UITableViewController& XIB

UIViewController的xib有一个UIView的出口。 UIView的一个实例是在UIViewController中的alloc'd和init'd。 UIView然后分配和init的NSXMLParser,加载数据,绘图,并执行[self setNeedsDisplay]。该应用程序编译没有错误,我已经验证正在加载和解析XML数据。

问题是当UIView初始化时,在UIView中调用drawRect:但是再也不会。调用drawRect:时,数据尚未加载,因此不会绘制任何内容。我已经验证正在调用[self setNeedsDisplay],但是drawRect:永远不会再被调用。

任何人都知道为什么drawRect:只被调用一次?感谢。

1 个答案:

答案 0 :(得分:0)

你是否有一些代码正在运行,可能与你的XML解析器有关,阻塞了主线程?如果是这样,UI更新将不会发生,直到下一次运行循环迭代。

您可以通过调用:

强制运行循环的迭代
[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];

可以在this answer找到更多信息。