Я только что нашел решение, которое отлично работает, и я понятия не имею, почему.
Если вы выберете кнопку в Интерфейсном Разработчике и откроете «Инспектор идентификации», вы можете добавить «Определенные пользователем атрибуты времени выполнения»».Если вы добавите ключ «self.fillColor» с типом цвета, этот цвет будет использоваться в качестве цвета заливки для кнопки.
Я обнаружил это чисто случайно.У меня был собственный подкласс UIButton под названием ColoredButton, где я рисовал скругленный прямоугольник и заполнял его сам.Он использовал свойство fillColor.Я изменил один из своих объектов ColoredButton обратно на UIButton, чтобы что-то проверить, и с удивлением обнаружил, что он все еще заполнен цветом.
Я не знаю, почему он работает, но он работает.