2016-10-02 43 views
0

我正在使用多路连接框架编写应用程序。我的一个设备将准备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()

+0

您可以使用调试视图层次结构(3D视图)检查应用程序运行时的所有子视图。我在我的回答中附上了相同的图片。 –

回答

1

它可能有可能子视图回到视图的层次结构。你甚至可以用调试视图层次结构(3D视图)根据下面的图像来检查。

Debug view hierarchy

如果你的观点是回你可以使用此代码的主视图,即使你不知道的SuperView:

在Objective-C:

[subview.superview bringSubviewToFront: subview]; 

In swift:

subview.superview.bringSubviewToFront(subview) 

希望它能帮助你。

+0

虽然它仍然无法解决我的问题,但是让我知道有这样的调试模式,我可以在将来使用它。谢谢。 – user6539552

+0

@ user6539552好你解决了你自己的问题,我的答案将帮助你在将来的调试中。 –

0

最后我发现这是因为我的代码没有在主线程执行,因此它不会更新UI。