2017-01-19 6 views
1

Я бы очень хотел использовать динамический тип как можно больше в приложении iOS - мне нравится идея, что пользователь может выбрать любой размер, который они предпочитают.iOS dynamic type - установить минимальный размер шрифта

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

Короче говоря, я ищу способ установить минимальный размер шрифта для текста тела или для конкретного независимо от того, что говорит динамический тип, или способом блокировки определенных уровней динамического типа.

+0

Вы можете присвоить свойство или тег к объектам, которые вы хотите, чтобы соответствовать динамическому размеру шрифта и проверить, что значение решить, какие объекты будут использовать динамический размер шрифта –

ответ

0

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

В методе Viewdidload -

NotificationCenter.default.addObserver(self, selector: #selector(self.handleDynamicTypeChange), name: NSNotification.Name.UIContentSizeCategoryDidChange, object: nil) 

В методе обработчика -

func handleDynamicTypeChange() { 
    print("size category changed to --->\(UIApplication.shared.preferredContentSizeCategory)") 

    if (UIApplication.shared.preferredContentSizeCategory) == UIContentSizeCategory(rawValue: "UICTContentSizeCategoryXS") || (UIApplication.shared.preferredContentSizeCategory) == UIContentSizeCategory(rawValue: "UICTContentSizeCategoryS") { 
     dynamicLabel?.font.withSize(12.0) 
    } 
    else { 
     dynamicLabel?.font = UIFont.preferredFont(forTextStyle: .body) 
    } 
} 
Смежные вопросы