2012-05-11 14 views
8

Se ho UITextView e impostare la dimensione del carattere su, ad esempio 32. Quando eseguo l'applicazione (sia sul simulatore che sul dispositivo), vedo un il grande cursore e il testo che digito appaiono proprio come supponevo. Ma se cambio la tastiera Emoji, vengono visualizzati piccoli. Come la dimensione del carattere non è mai stata aumentata.Aumentare la dimensione del carattere dei caratteri emoji in un UITextView in iOS 5.x

Conosco queste scale di caratteri di emoji, come li ho trasformati in proporzioni gigantesche in OSX Lion, e se creo un UIButton con un personaggio emoji come se fosse un'etichetta e impostato il carattere su "Apple Color Emoji" e il dimensioni a 64, sembrano enormi e stupendi sul mio dispositivo. Sembra che UITextView non li ridimensiona.

risposta

8

Hai provato a impostare anche il carattere di UITextView su AppleColorEmoji? Su iOS, sembra che AppleColorEmoji sia l'unico font che disegnerà emoji ridimensionate. Usa qualsiasi altro font e le emoji non diventeranno mai più grandi di circa 20x20 pixel, come hai notato.

Ho eseguito i miei test utilizzando this handy free app called Fonts!, che è un buon modo per ottenere un rapido riscontro sul dispositivo stesso.

Ho notato che l'app Game Center sembra essere in grado di mixare un font interessante con emoji ridimensionate, quindi chiaramente è possibile fare meglio del font emoji (piuttosto pedonale)! Non so se questo è qualcosa di speciale nel suo codice, però, o qualcosa di speciale sul carattere che usa, che sembra uno personalizzato.

+0

AppleColorEmoji è la strada da percorrere. Nessuno spazio. Mi stava usando lo stesso nome del font, ma con gli spazi. –

-1

È possibile ridimensionare gli emoji con QUALSIASI carattere si imposta UITextViews contentScaleFactor e quindi ridimensionare il campo di testo utilizzando un CGTransform. (Anche è possibile scalare li più grandi (ad alta risoluzione) che AppleColorEmoji ti permette di andare per impostazione predefinita.

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

la risoluzione diventa brutta quando faccio la tua soluzione con gli emoji Apple – coolcool1994

Problemi correlati