iPhone - как обновить / перерисовать кнопку, изменившую состояние? - PullRequest
1 голос
/ 27 июня 2011

В настоящее время я использую NSNotifications для отправки сообщения от моего представителя приложения на UIView в моем приложении iPhone.

Уведомление получает UIView, и я затем использую селектор, чтобы изменить состояние кнопки в UIView.

Вот функция, которая передается в селектор:

-(void)changeButtonState
{
    NSLog(@"Change button state received");
    [testButton setEnabled:NO];
    [testButton setNeedsDisplay];
}

Это вызывается, однако состояние кнопки никогда не изменяется визуально, она функционально отключается, но выглядит так, как будто она все еще включена на экране.

Так что похоже, что setNeedsDisplay здесь не работает или неверное кодирование с моей стороны?

Может кто-нибудь сказать мне, как я должен правильно перерисовать кнопку или представление, когда я изменяю состояние?

1 Ответ

4 голосов
/ 27 июня 2011

Поскольку обновление пользовательского интерфейса обычно выполняется в основном потоке, setNeedsDisplay будет вызываться только в основном потоке. Поэтому вам необходимо убедиться, что вы вызываете его в главном потоке, используя performSelectorOnMainThread.

...