My viewController получает уведомления из фоновых потоков и соответственно обновляет интерфейс.iOS view.hidden = NO не всегда работает
Используя этот кусок кода
dispatch_async(dispatch_get_main_queue(), ^{
self.myButton.hidden = NO;
[self.view addsubview:someView];
});
Я наблюдаю каждый сейчас и потом (2/5 раз), что MyButton не видно. someView добавлен. Если я нажимаю область, где myButton становится видимой.
Каков правильный способ обновления пользовательского интерфейса, подобный этому при вызове из фонового потока, я думал, что это так, но он явно не работает, как я ожидал.
Вы должны смотреть на то, где еще вы могли бы быть установки 'self.myButton.hidden = YES;' –
Этого код выглядит хорошо - что это правильный способ сделать это. Я бы хорошо посмотрел на другое место, где вы прятались, чтобы ДА. Любой обмен сообщениями UIKit на других потоках, кроме основного, вызовет всевозможные странные вещи. Спросите меня, как я знаю, что это факт :-) –
Кнопка, с которой я столкнулся, начинает скрываться в нибе. В какой-то момент в моем коде я установил скрытое свойство NO. Ни в каком другом месте скрытое свойство не изменилось. Я не думаю, что это проблема того, что этого не происходит, или она переопределяется где-то еще, когда кнопка реагирует на прикосновение. Он есть, работая неправильно неправильно перерисованными. Также, если я проведу пальцем по области, он станет видимым. Если свойство было где-то скрыто, кнопка не станет видимой, и она не будет реагировать на прикосновение. – user2123173