UILabel непрерывная смена шрифта требует памяти и сбоя после нескольких проб - PullRequest
0 голосов
/ 15 октября 2019

Я изменяю размер шрифта с помощью UISlider и жеста пинч.

label.font = font.withSize(updatedFontSize)

При каждом изменении шрифта приложение потребляет небольшое количество памяти (например, ~ 0,01 МБ). Поскольку рендеринг / инициализация шрифта немного дороже, iOS стремится кешировать UIFont в ОС, которая является причиной такого потребления памяти (объяснение из этого SO вопроса ). После быстрой смены шрифта в течение нескольких раз, iOS начинает проверять, доступен ли этот шрифт в кэше. С помощью ползунка / жеста можно создать тысячи шрифтов, которые будут сохранены в UIFontCache.

Постоянно меняя шрифт в течение нескольких минут, +[UIFont _fontWithDescriptor:size:textStyleForScaling:pointSizeForScaling:maximumPointSizeAfterScaling:forIB:] начал занимать огромное количество процессоров. enter image description here Это вызывает сбой в моей UILabel при изменении размера шрифта. Есть ли способ предотвратить использование этого процессора, чтобы предотвратить этот сбой?

...