2013-12-03 2 views
2

У меня есть приложение, где я использую Helvetic шрифты с размером шрифта 60.0 пикселей для My UILabel. Проблема возникает, когда кто-то вводит текст с символами Emoji. Весь текст имеет размер шрифта 60,0 пикселей, но символы emoji не масштабируются.iOS App - Emoji Characters Размер шрифта

P.S. Я не хочу использовать шрифты AppleColorEmoji для обычного текста. Я не могу использовать NSAttributedString, поскольку мое приложение поддерживает iOS 5.

+0

Посмотрите на это, стр. 20. Это часто приводит к тому, что i ssues с шрифтами. http://cdn.ustwo.co.uk/PPP/PPP2.pdf – sbarow

ответ

1

Вы можете масштабировать emojis с помощью ЛЮБОГО шрифта, если вы установите UITextViews contentScaleFactor, а затем масштабируете текстовое поле с помощью CGTransform. (Вы можете даже масштабировать их больше (с высоким разрешением), чем AppleColorEmoji позволяет вам по умолчанию по умолчанию.

Так просто установите свой размер шрифта helvetic в соответствии со стандартным размером шрифта emoji в helvetica (возможно, 12.0f), затем установите ваш коэффициент масштабирования и коэффициент разрешения до 2.0f, и сделайте ширину и высоту вашего текста (1/2), что это обычно будет, затем выполните приведенный ниже код, а конечным продуктом будет textView, кадр которого - правильный размер, ваш размер шрифта в два раза больше, чем вы его установили (теперь шрифт 24.0f pt (ВКЛЮЧАЯ EMOJIS)), и разрешение кристально ясно, как для вашего шрифта (текста), так и для вашего emojis, как если бы все они были такими же размерами все время!)

float scaleFactor = 2.0f; 
float resolutionFactor = 2.0f; 

CGPoint tempCenter = theTextView.center; 

theTextView.contentScaleFactor *= resolutionFactor; 
theTextView.layer.contentsScale *= resolutionFactor; 


for (UIView *subview in [theTextView subviews]) { 
    subview.contentScaleFactor *= resolutionFactor; 
    subview.layer.contentsScale *= resolutionFactor; 
} 

theTextView.transform = CGAffineTransformScale(CGAffineTransformIdentity, scaleFactor, scaleFactor); 

theTextView.center = tempCenter; 

 Смежные вопросы

  • Нет связанных вопросов^_^