4

我知道并听说大多数与 UI 相关的不应该在主线程以外的线程中完成。
我也知道您可以更新 UIView 派生类的非视图相关数据成员(您添加的)。

我想知道以下操作是否可以在后台线程中执行。

  1. 分配 UIView
  2. 带/不带(CGRectZero 或仅初始化)框架信息的初始化 UIView
  3. 修改 UIView 的 frame/image(UIImageView's) 属性
  4. 修改 NSObject 派生类的图像属性。(将 UIImage 视为数据)
  5. 使用 subviews 方法访问子视图
  6. 等等。关于这个问题是否有明确定义的文档?

谢谢

4

1 回答 1

3

你不应该在后台线程中做任何与视图相关的事情。您列出的所有项目都不应该在后台线程中完成。如果您为 MVC 正确分解应用程序,则视图应仅包含指示其显示方式的项目。所以任何与一个有关的东西都应该只在主线程中。

您的所有数据操作都应该驻留在您的模型中。它可以根据性能需要进行线程化。请注意发送任何消息以更新 UI 以在主线程上进行数据操作。这包括通知。它们在创建它们的同一线程上发送。所以发送的时候很容易忘记切换到mainThread。

于 2011-04-22T05:27:13.987 回答