UIView setFrame 线程安全

Posted

技术标签:

【中文标题】UIView setFrame 线程安全【英文标题】:UIView setFrame thread safety 【发布时间】:2014-04-01 18:19:41 【问题描述】:

UIView 文档说“对应用程序用户界面的操作必须在主线程上进行”。尽管如此,到目前为止,在我的测试中,我发现使用 setFrame 从后台线程重新定位视图确实有效。

谁能确认 setFrame 是否是线程安全的?

【问题讨论】:

【参考方案1】:

所有 UI 更新代码(包括 setFrame )都必须在主线程上完成。我想你已经知道了这个问题的答案:)

它可能在后台线程中工作,但这并不意味着它是安全。 为了更直接地回答这个问题,Apple 几乎说 UIView 代码不是线程安全的。

如果您需要从不同的线程更新 UI,请使用 Grand Central Dispatch 在主线程上调用它。

Here's a kind of similar question @ ***

【讨论】:

以上是关于UIView setFrame 线程安全的主要内容,如果未能解决你的问题,请参考以下文章

Java线程安全和非线程安全

如何创建线程?如何保证线程安全?

如何创建线程?如何保证线程安全?

如何确保Java线程安全?

如何保证线程安全?

多线程(四):线程安全