我正在开发一个主视图为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:只被调用一次?感谢。
答案 0 :(得分:0)
你是否有一些代码正在运行,可能与你的XML解析器有关,阻塞了主线程?如果是这样,UI更新将不会发生,直到下一次运行循环迭代。
您可以通过调用:
强制运行循环的迭代[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];
可以在this answer找到更多信息。