Swift:使用多路连接更新UIView
我正在使用多路连接框架编写应用程序。我的一个设备将准备UIView项目列表并发送到其他设备。当其他设备收到该列表时,它将其放在视图中并显示。Swift:使用多路连接更新UIView
但是,我发现设备可以接收列表,并可以列出列表中每个项目的框架。但是,它使用for循环将其放在屏幕上,但视图永远不会更新。任何想法,我错过了什么?
func placeViews() {
for (string, item) in self.imageViewItemViews {
debugPrint(string, item.frame) // print out what it received correctly
self.containerView.addSubview(item)
}
}
当应用程序启动时,containerView已经显示。我也叫self.containerView.setNeedsDisplay()
它可能有可能子视图回到视图的层次结构。你甚至可以用调试视图层次结构(3D视图)根据下面的图像来检查。
如果你的观点是回你可以使用此代码的主视图,即使你不知道的SuperView:
在Objective-C:
[subview.superview bringSubviewToFront: subview];
In swift:
subview.superview.bringSubviewToFront(subview)
希望它能帮助你。
虽然它仍然无法解决我的问题,但是让我知道有这样的调试模式,我可以在将来使用它。谢谢。 – user6539552
@ user6539552好你解决了你自己的问题,我的答案将帮助你在将来的调试中。 –
最后我发现这是因为我的代码没有在主线程执行,因此它不会更新UI。
您可以使用调试视图层次结构(3D视图)检查应用程序运行时的所有子视图。我在我的回答中附上了相同的图片。 –