gpt4 book ai didi

iOS/Xcode——drawRect : Not Being Called in UIView Subclass

转载 作者:行者123 更新时间:2023-11-28 17:36:43 25 4
gpt4 key购买 nike

我正在开发一个主视图是 UITabViewController 的应用程序。 UITabViewController下面是三个UIViewController和一个UITableViewController。在其中一个 UIViewControllers 下是一个 UIView 和一个符合 NSXMLParserDelegate 的 NSObject。这是高层次结构的概述: AppDelegate:UIResponder UIViewController1 & xib UIViewController2 & xib UIViewController3 & xib UIView(CG调用在这里) NSXML解析器 UITableViewController & xib

UIViewController 的 xib 有一个 UIView 的导出。 UIView 的实例在 UIViewController 中分配和初始化。 UIView 然后分配和初始化 NSXMLParser,加载数据,进行绘图,并执行 [self setNeedsDisplay]。该应用程序编译无误,我已验证 XML 数据正在正确加载和解析。

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

有人知道为什么 drawRect: 只被调用一次吗?谢谢。

最佳答案

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

您可以通过调用以下命令来强制运行循环的迭代:

[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]];

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

关于iOS/Xcode——drawRect : Not Being Called in UIView Subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com