2016-10-02 6 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

Возможно, что под-представления возвращаются в иерархию представлений. вы можете даже проверить это с помощью Иерархия отладочного представления (трехмерный вид), как показано ниже.

Debug view hierarchy

Если ваш взгляд снова на главном экране, вы можете использовать этот код, даже вы не знаете о SuperView:

В Objective-C:

[subview.superview bringSubviewToFront: subview]; 

В быстрых:

subview.superview.bringSubviewToFront(subview) 

Надеюсь, это вам поможет.

+0

Хотя он все еще не может решить мою проблему, вы даете мне знать, что есть такой режим отладки, и я могу использовать его в будущем. Благодарю. – user6539552

+0

@ user6539552 Хорошо, что вы решили свою проблему, и мой ответ поможет вам в дальнейшей отладке. –

0

Наконец-то я обнаружил, что это потому, что мой код не выполняется в основном потоке и, следовательно, он не обновляет пользовательский интерфейс.