2013-04-05 6 views
7

मैं xmpp-client एप विकसित कर रहा हूं। सुविधाओं में से एक मुस्कान भेज रहा है और उपयोगकर्ता को हमारे जैसे टेक्स्ट को संपादित करने की क्षमता होनी चाहिए। Viber App में इमोटिकॉन्स संपादन मैं जो कार्यान्वित करना चाहता हूं उसका सबसे अच्छा उदाहरण है।UITextView इमोटिकॉन्स संपादन

  • मैं हमेशा की तरह UIImageView तरह इमोटिकॉन बना सकते हैं और UITextView पर एक subview वर्तमान कैरट रेक्ट का उपयोग कर के रूप में यह जगह:

    मैं पहले से ही इस समस्या का समाधान करने के तीन तरीके की कोशिश की। मैं पाठ दृश्य में टेक्स्ट प्लेसहोल्डर के रूप में 5 व्हाइटस्पेस का उपयोग करता हूं। दो समस्याएं हैं: बीच में टेक्स्ट डालने पर इमोटिकॉन्स को नई लाइन पर रखने के साथ (प्रिंटिंग व्हाइटस्पेस नई लाइन पर कैरेट नहीं ले जाती); जब उपयोगकर्ता आवर्धक ग्लास का उपयोग करके कैरेट रखता है, तो वह इमोटिकॉन (5 सफेद जगहों के माध्यम से) के माध्यम से देखभाल को स्थानांतरित कर सकता है, क्योंकि इस प्रक्रिया के दौरान प्रतिनिधि विधि को नहीं बुलाया जाता है।

  • मैंने EGOTextView को आजमाया है। नई लाइन को जोड़ा जाना चाहिए जब देखभाल स्थिति और आकार बदलने में समस्याएं हैं। और एक लाइन आकार का उपयोग करते समय कुछ प्रतिपादन कलाकृतियों हैं।
  • मैंने UIWebView का उपयोग करने का भी प्रयास किया है। लेकिन पहली प्रतिक्रियाकर्ता बनने पर प्रतिक्रिया की गति के साथ टेक्स्ट आकार और अन्य कलाकृतियों के आधार पर आकार बदलने में बड़ी समस्याएं थीं।

क्या कोई मुझे वास्तव में काम करने के समाधान की सलाह दे सकता है?

उत्तर

2

मैं वास्तव में यूआईटीएक्स्टव्यू/यूआईटीक्स्ट इनपुट के तंत्र और तंत्र की व्यवस्था में नहीं हूं, लेकिन मैं आपको एक (अवांछित) सलाह देने की कोशिश करता हूं जो संभवतः अपेक्षित परिणाम प्राप्त कर सकता है।

अंतर्निहित आईओएस इमोजी सरल वर्ण हैं, इसलिए हम एक कस्टम फ़ॉन्ट (या मौजूदा एक का विस्तार) बनाकर उसी पथ का अनुसरण कर सकते हैं। हम दो विकल्प हैं:

  • आप लक्षित करना चाहते हैं iOS 6.0 (कि UIKit कक्षाओं में NSAttributedString के लिए देशी समर्थन है), आप सभी इमोटिकॉन्स आप की जरूरत युक्त एक कस्टम फ़ॉन्ट का निर्माण करने की कोशिश कर सकते हैं और इसे अपने NSAttributedString के अंदर उपयोग करें (जिम्मेदार स्ट्रिंग विभिन्न फोंट, फ़ॉन्ट आकार, शैलियों आदि को मिश्रित कर सकती है)।

  • आप के साथ इसी तरह iOS 5 कुछ कर सकते हैं, लेकिन जब से तुम NSAttributedStringUITextView (ताकि आप पूरे पाठ के लिए सिर्फ एक फ़ॉन्ट के लिए सीमित हैं) के अंदर का उपयोग नहीं कर सकते हैं कि एक साथ वास्तविक को जोड़ती है एक फ़ॉन्ट का उपयोग करना चाहिए पात्रों और कस्टम इमोटिकॉन्स: इसलिए आपको उस फ़ॉन्ट का विस्तार करना चाहिए जिसका उपयोग आप टाइपिंग के लिए करना चाहते हैं, इसमें सभी इमोटिकॉन्स जोड़कर। मुझे नहीं पता कि यह लाइसेंस के प्रभाव हो सकता है, वैसे भी।

अन्यथा, आप कभी भी बहुत कुछ निम्न स्तर के लिए जा सकते हैं, CoreText का उपयोग कर अपने स्वयं के कस्टम TextView को लागू करने के लिए, लेकिन मुझे लगता है कि यह एक कठिन काम होगा।

+0

सलाह के लिए धन्यवाद। मैं फ़ॉन्ट अनुकूलन के बारे में भी सोचना शुरू करता हूं, लेकिन मुझे वास्तव में नहीं पता कि सेब इमोजी जैसे फ़ॉन्ट में पूर्ण रंगीन बिटमैप ग्लाइफ कैसे बनाएं। – yariksmirnov

+0

क्या आईओएस पर एक फ़ॉन्ट के भीतर रंगीन छवियों को शामिल करने का कोई तरीका है? – Stavash

+0

मैं कस्टम पीएनजी छवियों का उपयोग कर एसबीआईक्स तालिका के साथ कस्टम फ़ॉन्ट बनाने में कामयाब रहा। यह ओएस एक्स पर पूरी तरह से काम करता है, लेकिन आईओएस ने ग्लिफ को प्रस्तुत करने से इंकार कर दिया है, जो ऐप्पल इमोजी के सिस्टम संस्करण के बाद फ़ॉन्ट को एसबीक्स टेबल पर मैपिंग कर रहा है। दूसरे शब्दों में, यदि आप यूआईटीएक्स्टव्यू में कस्टम फ़ॉन्ट को यूआईएलएबल में प्रोग्रामेटिक रूप से सेट करते हैं और टेक्स्ट वैल्यू सेट करते हैं कुछ इमोजी यूटीएफ प्रतीक कोड, मानक इमोजी फ़ॉन्ट से ग्लाइफ प्रस्तुत किया जाएगा भले ही आपके कस्टम फ़ॉन्ट ग्लाइफ में उस यूटीएफ कोड के लिए प्रस्तुत किया गया हो। – yariksmirnov