gpt4 book ai didi

iphone - 在后台线程上构建 UIViews

转载 作者:可可西里 更新时间:2023-11-01 05:37:47 28 4
gpt4 key购买 nike

我知道 UI 应该只在主线程上更新,但是是否可以在单独的线程上创建和添加 subview ,只要它们不添加到可见 View 中即可?它会导致内存和性能问题吗?这是一些示例代码。

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
// do some fancy calculations, building views
UIView *aView = ..
for (int i, i<1000, i++)
{
UIView *subView = …
[aView addSubview:subView];
}

// Update UI on Main Thread
[queue addOperationWithBlock:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{

// Update the interface
[self.view addSubview:aView];
}];
}];
}];

最佳答案

我对您为什么不想这样做的理解是 CALayer 由非线程安全的内存支持。因此,您可以在后台线程上绘制,但不能渲染层或操作 View 。

因此,您要做的是将复杂的 View 逻辑绘制到图像上下文中,并将图像传递给主线程以在 ImageView 中显示。

希望这对您有所帮助!

关于iphone - 在后台线程上构建 UIViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158175/

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