Изменился рендеринг шрифтов Objective-C – iOS5?

#objective-c #cocoa-touch #ios4 #fonts #ios5

#objective-c #cocoa-touch #ios4 #шрифты #ios5

Вопрос:

В iOS4 (симулятор 4.3), когда я использую font Myriad Pro со следующим методом шрифта для ячейки:

cell.titleLabel.font = [UIFont fontWithName:@"Myriad Pro" size:14];

Это выглядит так:

введите описание изображения здесь

В iOS5 (симулятор 5.0), когда я использую font Myriad Pro с тем же методом шрифта, это выглядит так:

введите описание изображения здесь

Кто-нибудь также сталкивался с таким поведением (возможно, с другими шрифтами?).

Комментарии:

1. Так ли это выглядит на устройстве или только на симуляторе? bugreport.apple.com возможно.

2. Так выглядит и на устройстве (под управлением iOS5).

3. Правильно ли вы объявили файл шрифта в своем Info.plist? Myriad Pro не является стандартным шрифтом на iOS. Кроме того, вы уверены, что у вас есть лицензия на Myriad Pro, которая позволяет встраивать ее в ваше приложение?

4. Изменился ли размер метки? Попробуйте выполнить cell.titleLabel.adjustsFontSizeToFitWidth = NO

5. @omz Да, как вы можете видеть, он правильно отображается в iOS 4.3, но каким-то образом он отображается как сжатый в iOS 5.0. Вот почему мне интересно, изменился ли рендеринг шрифтов в iOS 5.0. Несмотря на это, что-то действительно отличается между рендерингом в iOS4 и iOS5. Я установил Fonts provided by application для ключа в App-info.plist такие значения, как «MyriadPro-Regular.otf» и «MyriadPro-Bold.otf». Да, я уверен, что у меня есть лицензия, но спасибо, что предупредили меня.

Ответ №1:

При использовании fontWithName:size: в iOS 5 параметром font name должно быть полное имя файла шрифта в вашем пакете приложений, а не только название семейства шрифтов.

Комментарии:

1. У меня такая же проблема, я использую этот [UIFont fontWithName: @»HelveticaNeue-Light» размер: 18.0]

Ответ №2:

Рендеринг шрифтов изменился в iOS 5. В iOS 4 можно было использовать только одно лицо в файле шрифта, независимо от того, сколько лиц было в файле шрифта и какое лицо вы запрашивали.

iOS 5 позволяет использовать все грани во встроенном файле шрифтов.

В нашем случае мы запрашивали обычный шрифт, но вместо этого получали светлый шрифт. В iOS 5 мы возвращаем обычный, который испортил некоторый интервал между UILabel.

Ответ №3:

Было бы полезно, если бы я мог увидеть скриншот большего размера, но, похоже, это сжатый Myriad Pro, а не Myriad Pro. В документации для fontWithName:size: этого говорится о fontName :

Полностью указанное имя шрифта. Это имя включает в себя как название семейства шрифтов, так и конкретную информацию о стиле шрифта.

При передаче «Myriad Pro» вы указываете только имя семейства. Возможно, система случайным образом выбирает для вас неправильного члена семейства шрифтов. Поэтому попробуйте произнести полное имя нужного вам шрифта, в данном случае «Myriad Pro Regular».