Я бы установил очень большой шрифт для заголовка кнопки, а затем установил бы минимальный масштаб шрифта, например, 0,1 или 0,2.Например:
let button = UIButton()
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 50) //for example
button.titleLabel?.minimumScaleFactor = 0.1
button.titleLabel?.numberOfLines = 1 // you don't want it to split into 2 rows, right?
button.titleLabel?.adjustsFontSizeToFitWidth = true
минимумScaleFactor гарантирует, что текст вашего ярлыка будет автоматически сжиматься, в зависимости от рамки вашей кнопки, до тех пор, пока он не станет 10% от установленного вами начального масштаба.
ОБНОВЛЕНИЕ :
Добавьте эту строку, чтобы текст отображался в центре:
button.titleLabel?.textAlignment = .center // or .justified (try it yourself)
Хотя ваше изображение настолько нечеткое.Что такое серая зона?Если весь квадрат - это ваша кнопка, а серый - это изображение, то вы должны заметить, что текст кажется посередине квадрата, что приводит к выводу, что ваше изображение неверно.Его отверстие не в центре, где должен быть текст.