2012-05-11 62 views
8

Jeśli mam UITextView i ustawię rozmiar czcionki na, powiedzmy 32. Po uruchomieniu aplikacji (zarówno w symulatorze, jak i na urządzeniu) widzę duży kursor i tekst, który wpisuję, wydają się być takie, jak przypuszczam. Ale jeśli przełączę klawiaturę Emoji, wyświetlają się one na małym ekranie. Podobnie jak rozmiar czcionki nigdy nie został zwiększony.Zwiększ rozmiar czcionki znaków emoji w UITextView w iOS 5.x

Znam te skale czcionek emoji, ponieważ wysadziłem je w gigantyczne proporcje w OSX Lion i jeśli utworzę UIButton z emoji jako etykietą i ustawię czcionkę "Emoji Apple Colour" i rozmiar do 64, wyglądają olbrzymie i wspaniałe na moim urządzeniu. Wygląda na to, że UITextView nie zmienia ich rozmiarów.

Odpowiedz

8

Czy próbowałeś także ustawić czcionkę UITextView na AppleColorEmoji? W przypadku iOS wydaje się, że AppleColorEmoji to jedyna czcionka, która będzie rysować skalowane emoji. Użyj jakiejkolwiek innej czcionki, a emoji nigdy nie osiągnie rozmiaru większego niż około 20x20 pikseli, jak zauważyłeś.

Zrobiłem moje testy przy użyciu this handy free app called Fonts!, co jest dobrym sposobem na uzyskanie szybkiej informacji zwrotnej na samym urządzeniu.

Zauważam, że aplikacja Game Center wydaje się być w stanie wymieszać ciekawą czcionkę ze skalowanym emoji, więc wyraźnie jest w stanie zrobić to lepiej niż (raczej pieszy) emoji! Nie wiem, czy jest to coś wyjątkowego w kodzie, czy coś szczególnego na temat używanej czcionki, która wygląda jak niestandardowa.

+0

AppleColorEmoji jest do zrobienia. Nie obowiązuje. I był przy użyciu tej samej nazwy czcionki, ale ze spacjami. –

-1

Możesz skalować emojis za pomocą DOWOLNEJ czcionki ustawiasz UITextViews contentScaleFactor, a następnie przeskaluj pole tekstowe za pomocą CGTransform. (Można nawet skalować je większe (o wysokiej rozdzielczości) niż AppleColorEmoji pozwala przejść domyślnie.

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; 
+0

rozdzielczość staje się zła, gdy robię twoje rozwiązanie z emoji Apple – coolcool1994

Powiązane problemy