只有在移动屏幕并调用CGAffineTransformTranslate(myuiview,x,y)后才会显示新形状;
我做错了什么?
dispatch_async(backgroundQueue, {
var calayer:CALayer=CALayer();
myuiview.layer.addSublayer(calayer);
myshape=createShape(); // takes long, thats why in the background.
dispatch_async(dispatch_get_main_queue()) {
calayer.addSublayer(myshape)
calayer.setNeedsDisplay(); // No update on the screen !!!!
}
})
答案 0 :(得分:0)
似乎问题是因为您从非主线程管理层次结构。在调度主队列块中移动相关代码,它应该工作。要处理性能,您可以在离线位图上下文中的非主线程中执行渲染,生成CGImage并将其作为内容提供给主线程中的图层