Существует ли путь к setTitle на UIButton, который обновляет весь UIControlStates сразу?

На практике предел обычно определяется стековым пространством. Если каждый поток получает стек 1MB (я не могу помнить, является ли это значением по умолчанию на Linux), то Вы, 32-разрядная система исчерпает адресное пространство после 3 000 потоков (предполагающий, что последний ГБ резервируется к ядру).

Однако Вы, скорее всего, испытаете ужасную производительность при использовании больше чем нескольких дюжин потоков. Рано или поздно Вы получаете слишком много контекстного переключения наверху, слишком много служебное в планировщике, и так далее. (Создание большого количества потоков действительно немного больше, чем ест большую память. Но много потоков с фактическим работа , чтобы сделать собирается замедлить Вас, поскольку они борются в течение доступного процессорного времени)

, Что Вы делаете, где этот предел даже релевантен?

31
задан Fattie 2 January 2019 в 14:08
поделиться

1 ответ

Согласно документации, вам нужно только позвонить:

In Objective -C:

[myButton setTitle:@"Play" forState:UIControlStateNormal];

В Swift:

myButton.setTitle("Play", for: .normal)

Документы UIButton объясняют, почему:

В общем, если свойство не указано для состояния, по умолчанию используется значение UIControlStateNormal. Если значение для UIControlStateNormal не задано, тогда для свойства по умолчанию используется системное значение. Поэтому, как минимум, вы должны установить значение для нормального состояния.

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

63
ответ дан 27 November 2019 в 21:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: