Разный размер шрифта на разных устройствах одного размера

Привет, я новичок в классе размеров. Насколько я знаю, Apple присвоила один размерный класс (Компактный + Обычный) для портретных iPhone 4s, 5, 6 и 6+. Итак, как я могу указать разные размеры шрифтов на этих трех разных устройствах с помощью раскадровки или любого другого способа сделать это. Спасибо Удачного кодирования


person chakshu    schedule 06.08.2015    source источник


Ответы (2)


Autolayout и SizeClasses не будут нацелены на определенные устройства, поэтому вам придется устанавливать размеры шрифта программно. Вы можете проверить размер вашего устройства с помощью UIScreen.mainScreen().bounds.size.height и соответственно установить размер шрифта. Это решение разъяснит вам больше .

person Munahil    schedule 06.08.2015
comment
Спасибо Так что нет решения с Storyboard. Честно говоря, если я должен использовать условия if для разных устройств, так почему я использовал классы автомакета или размера. - person chakshu; 06.08.2015
comment
Потому что, как я уже сказал, автомакеты используются, чтобы мы могли использовать одну и ту же раскадровку для всех устройств, поэтому они не нацелены на конкретные устройства. - person Munahil; 06.08.2015

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

Во-первых, мы не можем добиться этого на раскадровке.

Вам необходимо назначить разные размеры шрифта вручную, используя условия If и проверяя устройства.

Например:

if ([[UIScreen mainScreen] bounds].size.height == 568) {
    // Assign Font size for iPhone 5
}else if ([[UIScreen mainScreen] bounds].size.height == 667){
    // Assign Font size for iPhone 6
}else if ([[UIScreen mainScreen] bounds].size.height == 736){
    // Assign Font size for iPhone 6+
}else if ([[UIScreen mainScreen] bounds].size.height == 480){
    // Assign Font size for iPhone 4s
}

Примечание.

  • Вы можете создать отдельный класс Font, и если вы уже это сделали, вам просто нужно поставить выше проверки в этом классе.
person Mayur    schedule 06.08.2015