#ios #uiview #uibutton
#iOS #пользовательский интерфейс #uibutton #uiview
Вопрос:
У меня есть метод (void) buttonClicked: (id) sender{}. После того, как пользователь нажимает на кнопку, в графический интерфейс вносятся два изменения в следующем порядке:
- Изменить
- Пятисекундное ожидание с использованием [NSThread sleepForTimeInterval: 5]
- Изменение B
К сожалению, изнутри метода buttonClicked я, похоже, не могу обновить представление после изменения A, так что при выходе из метода buttonClicked видно только изменение B. Я понимаю, что представления могут быть изменены только из основного потока, и я видел ссылки на метод performSelectorOnMainThread , но я не могу понять, как его вызвать и как обновить представление с его помощью.
Комментарии:
1. Документация для
performSelectorOnMainThread:withObject:waitUntilDone:
содержит ссылки на примеры кода.2. Самый простой способ — извлечь код, который выполняет обновления, в свою собственную функцию (например, — (void)refreshView , а затем вызвать ее из buttonClicked: , с помощью [self performSelectorOnMainThread:@selector (Просмотр обновления)]
3. Никогда не переводите основной поток в спящий режим!