2013-02-19 75 views
6

मैं एक ऐसा ऐप्लिकेशन बना रहा हूं जहां उपयोगकर्ता पाठ इनपुट में टाइप कर रहा है, जब टेक्स्ट टेक्स्ट के नीचे दिखाई देने वाले 10 निकटतम/उच्चतम रैंकिंग शब्दों के साथ स्वत: पूर्णता लागू करने की आवश्यकता हो।आईओएस में स्वत: पूर्ण कार्यान्वयन

मैं दिया गया है 80,000 के आसपास शब्द का एक काफी बड़ी सूची और उनके संबंधित 'प्राथमिकता' - एक नंबर जो निर्धारित करता है कि उच्च वे संख्या के आकार के आधार स्वतः पूर्ण में दिखाई, इस तरह:

"transport international";19205 
"taxi";18462 
"location de voitures";18160 
"police";18126 
"formation";17858 

मैं आईओएस विकास के लिए बहुत नया हूं और यह सोच रहा था कि ऐसा करने का सबसे अच्छा तरीका क्या है - क्या मुझे 80,000 वाक्यांशों को छोटी फाइलों में विभाजित करना चाहिए, या बस इसे एक में रखना चाहिए? तेजी से क्या होगा?

मैंने आईओएस के लिए एक उदाहरण में स्वत: पूर्णता देखी है लेकिन यह बहुत कम सुझावों के लिए था - मैंने इसे पहले इस फ़ाइल का उपयोग करके नहीं देखा है, और जाहिर है, मैं इसे जितना तेज़ बनाना चाहता हूं जोड़ा उपयोगकर्ता अनुभव के लिए संभव है।

उदाहरण, ट्यूटोरियल या कोड सुझावों के लिए कोई सुझाव बहुत सराहना की जाएगी, धन्यवाद।

उत्तर

6

आप इस रेपो HTAutocompleteTextField, सही समाधान का उपयोग करना चाह सकते हैं।

+2

@ user1394965 [यह रेपो] (https://github.com/EddyBorja/MLPAutoCompleteTextField) जो भी आप चाहते हैं हो सकता है। –

+1

HTAutocompleteTextField के डेटा स्रोत के रूप में मेरे PJTernarySearchTree को आजमाएं: https://github.com/peakji/PJTernarySearchTree – PeakJi

2

https://github.com/TarasRoshko/TRAutocompleteView

बस TRAutocompleteItemsSource प्रोटोकॉल अनुरूप और बस इतना ही। प्रोटोकॉल को एसिंक समर्थन के साथ दिमाग में बनाया गया है। डेमो ऐप और नमूना TRGoogleMapsAutocompleteItemsSource आपको इसके साथ बहुत मदद करनी चाहिए।

7

यदि आप ऐसा कुछ पसंद करते हैं जो स्वत: पूर्ण करता है लेकिन यूआईटीएक्स्टफिल्ड का प्रत्यक्ष उप-वर्ग है, तो MLPAutoCompleteTextField आपके लिए रूचिपूर्ण हो सकता है।

MLPAutoCompleteTextField टेक्स्टफ़ील्ड में टेक्स्ट को हर बार स्वत: पूर्ण सुझावों की एक सरणी के लिए अपने स्वत: पूर्ण डेटासॉर से पूछकर काम करता है। यह स्वचालित रूप से शब्दों को भी क्रमबद्ध कर सकता है ताकि उपयोगकर्ता जो टाइप कर रहे हैं उसके निकटतम लोग स्वत: पूर्ण सूची के शीर्ष पर दिखाई देंगे (Levenshtein Distance एल्गोरिदम का उपयोग करके)। स्वत: पूर्ण सुझाव सरल स्ट्रिंग्स या ऑब्जेक्ट्स जो MLPAutoCompletionObject प्रोटोकॉल को कार्यान्वित कर सकते हैं।

युक्ति: स्वत: पूर्ण शर्तों के एक बड़े डेटासेट के लिए, आप शायद शुरुआती अक्षरों के आधार पर अपनी सूची को तोड़ना चाहेंगे। (उदाहरण: जब उपयोगकर्ता अक्षर एफ में प्रवेश करता है, तो आप स्वत: पूर्ण टेक्स्टफील्ड को केवल उन शब्दों की एक सूची देते हैं जो एफ से शुरू होते हैं।

MLPAutoCompleteTextField उचित रूप से उचित रूप से कई हजार सुझावों को सॉर्ट कर सकता है, और कभी भी इसे अवरुद्ध नहीं करेगा यूआई जबकि यह टाइप करता है।

फिलहाल, भारित सुझाव (जो डिफ़ॉल्ट सॉर्टिंग को ओवरराइड करते हैं) संभव नहीं हैं लेकिन यह एक योजनाबद्ध सुविधा है।

0

यह link मेरे लिए अच्छा काम करता है। अपने कोड के आधार पर, UITextField और UITextView के बीच अंतर को याद न करें।

कोई अतिरिक्त पुस्तकालय, बस एक आसान कस्टम UITableView और खोज फ़ंक्शन।