Минимальный размер шрифта не рекомендуется в iOS версии 6.0

92

Я только что обновился до xcode 4.5 с iOS 6.0, и он выделяет предупреждение на всех UILabels в моих файлах XIB, говорящее, что «минимальный размер шрифта устарел в версии iOS 6.0». Кто-нибудь знает, к чему это относится и как это исправить?

Обновление: изображение больше не доступно (было на https://skitch.com/hahmadi82/eyk51/cloud )

Хуман Ахмади
источник
1
@HoomanAhmadi: это письмо получили все разработчики iOS. Прочтите заявление об отказе от ответственности внизу: «Предварительная версия программного обеспечения ...»
Рок Джарк,
7
Измените «Минимальный размер шрифта» в разделе «Автоматическое уменьшение» на «Минимальный масштаб шрифта». : p У меня была такая же проблема, и я сразу пришел, предполагая, что шрифты не нарушают NDA. Похоже, в обновлении шрифты претерпели некоторые изменения.
erran
18
Я поднял этот вопрос, потому что он был неправильно закрыт. По крайней мере, причина закрытия неверна неправильно неверна. «это актуально только для небольшой географической области» - нет. Это касается всех разработчиков iOS. «Чрезвычайно узкая ситуация, которая в целом неприменима к мировой аудитории Интернета» нет. Это касается всех. «Этот вопрос вряд ли поможет будущим посетителям». Это было невероятно полезно для меня и, вероятно, будет одинаково полезно для всех разработчиков iOS. Я понимаю проблему NDA, но как только NDA будет отменено, этот вопрос встанет.
Jean-Denis Muys
9
Ребята, когда я в первый раз исправил это, я сделал это вручную, и это была особая пытка. Затем мне пришлось объединить некоторые изменения, и благодаря бета-версии Xcode он предоставил мне emacs в качестве моего инструмента для слияния, поэтому я отказался от этого и взял более новую версию файла, зная, что выброшу их, но затем я переделал эти изменения, используя TextWrangler: это файлы xml. Просто замените: autoshrinkMode = "minimumFontSize" на autoshrinkMode = "minimumFontScale" и замените minimumFontSize = "10" на minimumFontScale = "0.5". Вуаля.
Роб
1
@LittleBobbyTables: Было бы здорово , если бы люди могли спросить хорошо , хотя. Сердитое и названное нытье, подобное комментарию Матесзаби, - отличный способ убедить меня не открывать вопрос повторно.
CA McCann,

Ответы:

47

minimumFontSizeсвойство UILabelявляется устаревшим, начиная с iOS 6.0.

Альтернатива на minimumFontSizeэто minimumScaleFactor. Если вы назначаете minimumFontSize/defaultFontSizeна minimumScaleFactorэто работает точно так же , как minimumFontSize.

Код выглядит следующим образом - Например, размер шрифта составляет 30,0, и если вы хотите, чтобы минимальный размер шрифта был 12,0

YOURLABEL.font= [UIFont fontWithName:@"FONT_NAME" size:30.0];
[YOURLABEL setMinimumScaleFactor:12.0/[UIFont labelFontSize]];
Манджу
источник
8

Быстрое исправление ... Здесь минимальный размер шрифта - 8,0

            CGFloat size = textLabel.font.pointSize;// font size of label text
            [textLabel setMinimumScaleFactor:8.0/size];
Сабариш
источник
5

Я отвечаю очень поздно, но могу помочь любому другому. Как всем известно , что setMinimumFontSizeустарел, поэтому другой метод замены setMinimumFontSizeIS , setAdjustFontToFitWidthкоторый принимает , BOOL например ,

[yourLabel setAdjustsFontSizeToFitWidth:YES];
//or
yourLabel.adjustsFontSizeToFitWidth = YES;
Сайед Али Салман
источник
3

У меня была аналогичная проблема. Быстрое исправление - использовать свойство MinimumScaleFactor UILabel.

Джайпракаш Дубей
источник
3

Для Swift используйте следующее:

//set the number (ex. 8 to your desired minimum font size)
myLabel!.minimumScaleFactor = 8/myLabel!.font.pointSize;`

Работает как шарм!

КолоссальныйКрис
источник
1

Зайдите в искатель и найдите .storyboardфайл или свой .xibи откройте с помощью TextEdit. Используйте find, чтобы найти строку "autoshrinkMode"и заменить значение "minimumFontSize"на"minimumFontScale"

Странно, что конвертация не прописана в скриптах обновления ...

Также отметьте @Rob в комментариях выше за тот же ответ. Он должен получить признание за это.

SnareChops
источник
в моем файле раскадровки нет autoshrinkMode.
Тимучин
Спасибо, у меня это отлично работает. @Tim вам нужно только выбрать UILabel, и проверить опцию «label» на правой панели утилиты, и проверить опции, вы увидите тот, который называется «Autoshrink». i.stack.imgur.com/H6YYJ.png
pabloverd
0

Вы можете использовать минимальный масштабный коэффициент или перетащить метку и установить автошрик-> минимальный шрифт.

Может быть, это поможет тебе.

Shreeji
источник
0

Да minumumFontSizeне рекомендуется.

Используйте следующее minimumScaleFactor:-

Obj.minimumScaleFactor= (floatValue);
Гаурав
источник