Sto sviluppando l'app xmpp-client. Una delle caratteristiche è l'invio di sorrisi e l'utente dovrebbe avere la possibilità di modificare il suo simile testo usuall. La modifica di emoticon in Viber App è il miglior esempio di ciò che voglio implementare.UITextView con la modifica di emoticon
Ho già provato tre modi per risolvere il problema:
- creo emoticon come al solito UIImageView e posizionarlo come una visualizzazione secondaria sul UITextView utilizzando corrente rect accento circonflesso. Uso 5 spazi bianchi come segnaposto di testo nella vista testo. Ci sono due problemi: con l'inserimento di emoticon su una nuova riga quando si inserisce del testo nel mezzo (la stampa degli spazi non fa spostare il cursore sulla nuova riga); quando l'utente inserisce il caret usando il magnify glass, può spostare il caret attraverso l'emoticon (attraverso 5 spazi bianchi), poiché il metodo delegate non viene chiamato durante questo processo.
- Ho provato EGOTextView. Ci sono problemi con la posizione del cursore e il ridimensionamento quando è necessario aggiungere una nuova linea. E ci sono alcuni artefatti di rendering quando lo si utilizza con una dimensione di linea.
- Ho anche provato a utilizzare UIWebView. Ma ci sono stati grossi problemi con il ridimensionamento in base alle dimensioni del testo e ad altri artefatti con velocità di risposta quando si trattava del primo soccorritore.
Qualcuno potrebbe darmi consigli su soluzioni davvero funzionanti?
Grazie per il consiglio. Comincio anche a pensare alla personalizzazione dei font, ma in realtà non so come creare gli glifi bitmap a colori in caratteri come emoji di Apple. – yariksmirnov
C'è un modo per incorporare immagini colorate all'interno di un font su iOS? – Stavash
Sono riuscito a creare caratteri personalizzati con la tabella sbix usando immagini png personalizzate. Funziona perfettamente su OS X, ma iOS ha rifiutato di eseguire il rendering di glifi che hanno solo il mapping alla tabella sbix dal font diverso dalla versione di sistema di Apple Emoji. In altre parole, se si imposta il carattere personalizzato in UITextView su UILabel in modo programmatico e si imposta il valore del testo come il codice di un simbolo UTF dell'emoji, il glifo del carattere standard di emoji, verrà visualizzato anche se nel glifo del carattere personalizzato si presenta per quel codice UTF. – yariksmirnov