有没有办法手动更新UI? 例如,我有一个更新UI并执行一些逻辑的函数。 在UI更新之后,它将执行一些需要很长时间的逻辑,并且UI的更新必须等到逻辑执行完成。 有没有办法手动更新UI甚至逻辑甚至执行?
似乎可以在这里使用线程。 但有没有办法通过不使用线程来解决这个问题? 另外,使用if线程可以使用,最佳做法是什么?
谢谢!
答案 0 :(得分:1)
因为UI线程是你的应用程序的主线程,所以在它上面处理大型操作通常不是一个好主意,因为你在此期间冻结了你的UI(这不是用户友好的)。
使用线程的方式取决于你想要做什么,例如你可以使用- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
,或者你可以创建自己的线程并且更具体。
如果您想从其他线程对UI进行一些更改,请不要忘记调用- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
。
您可以在iOS参考资料库的guide中找到有关线程编程的所有信息。
希望这有帮助!
答案 1 :(得分:0)
你在想一个简单的进度条吗?如果是这种情况,那么您可以使用NSApp(参见管理事件循环部分)并使用runModalForWindow:和runModalSession:这些将允许您打开进度面板,报告状态并允许方法取消操作
由于操作是模态操作,因此在关闭面板之前,其他UI元素将被停用。