2016-10-02 20 views
0

マルチペイパー接続フレームワークを使用してアプリを作成しています。私のデバイスの1つは、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) 
    } 
    } 

コンテナビューは、アプリの起動時に既に表示されています。私はself.containerView.setNeedsDisplay()も呼びました。

+0

アプリケーションが実行されているときに、すべてのサブビューをデバッグビュー階層(3Dビュー)でチェックすることができます。自分の答えに同じイメージを添付しました。 –

答えて

1

サブビューがビューの階層構造に戻っている可能性があります。あなたはデバッグビューの階層(3Dビュー)でこれを次のように確認することもできます。

Debug view hierarchy

ビューも、あなたはスーパービューについて知らない、バックあなたはこのコードを使用することができ、メインビューのある場合:Objective-Cで

[subview.superview bringSubviewToFront: subview]; 

速報:

subview.superview.bringSubviewToFront(subview) 

お手伝いしますように。

+0

まだ私の問題を解決することはできませんが、私はそのようなデバッグモードがあることを教えてくれて、私は将来それを使用することができます。ありがとう。 – user6539552

+0

@ user6539552あなた自身の問題を解決してください。私の答えは将来のデバッグに役立ちます。 –

0

最後に、私のコードはメインスレッドで実行されないため、UIが更新されないことがわかりました。

関連する問題