Кто-нибудь когда-нибудь работал с динамическим типом для attributedTitle
на UIButton
? Рассмотрим супер простой код ниже:
let font = UIFont(name: "Helvetica", size: 14)!
let scaledFont = UIFontMetrics.default.scaledFont(for: font)
let button = UIButton(type: .custom)
button.titleLabel?.font = scaledFont
button.titleLabel?.adjustsFontForContentSizeCategory = true
let attributes: [NSAttributedString.Key: Any] = [ .font: scaledFont ]
let attributedText = NSAttributedString(string: "Press me", attributes: attributes)
button.setAttributedTitle(attributedText, for: .normal)
Если я масштабирую размер шрифта вверх и вниз с помощью Accessibility Inspector, размер кнопки и текст метки не масштабируются должным образом.
Если я просто вызываю button.setTitle()
, передавая обычную строку, динамическое масштабирование типов работает нормально.
Использование того же шаблона для атрибутивного текста непосредственно на UILabel
работает нормально ... это просто так, когда я использую атрибутивный текст для заголовка UIButton
.
Любые мысли или предложения будут потрясающими. Спасибо
Редактировать: После еще нескольких нажатий, похоже, что происходит то, что текст пытается масштабироваться, но ширина / высота кнопки при этом не растут. Если я набираю динамический шрифт с наибольшим размером текста, а затем создаю экран и продолжаю уменьшать размер шрифта, он работает нормально, потому что ограничения ширины / высоты кнопок имеют изначально большое значение. Но если я начну с небольшой настройки динамического типа и увеличу ее размер, кнопка не будет соответствовать изменению размера текста