2010-04-12 9 views
8

प्रलेखन इस बारे में वास्तव में स्पष्ट नहीं है। UITableViewDataSource को इंडेक्स-बार सेक्शन शीर्षक के लिए सेक्शन इंडेक्स प्रदान करने के लिए क्यों कहा जाता है?तालिका दृश्य का बिंदु बिल्कुल क्या है: sectionForSectionIndexTitle: atIndex :?

मेरा मतलब है ... इस विधि को किस मामले का उपयोग करना महत्वपूर्ण है? यह कब कहा जाता है और क्यों?

उत्तर

16

असल में, यह परिभाषित करता है कि जब आप निर्दिष्ट अनुभाग अनुक्रमणिका शीर्षक पर क्लिक करते हैं तो तालिका दृश्य स्क्रॉल करता है। आइए मान लें कि आप जेड के माध्यम से अक्षर ए के रूप में अपने इंडेक्स टाइटल को परिभाषित करते हैं, लेकिन आपके पास वास्तव में प्रत्येक अक्षर के लिए आइटम नहीं हैं। -tableView:sectionForIndexTitle:atIndex: में, आप अगले अनुभाग निर्दिष्ट करते हैं जिसमें एक आइटम है।

sectionIndexTitlesForTableView: ताकि ठीक से सूचकांक प्रस्तुत करना करने के लिए, UITableView सभी इंडेक्स खिताब प्रदर्शित करने के लिए पता करने की जरूरत है

4

यह website एक अच्छा जवाब है। यह विधि सभी इंडेक्स वाले तारों की एक सरणी देता है। हमारे मामले में, ए, बी, सी, डी, आदि

sectionForSectionIndexTitle: जब आप सूचकांक के माध्यम से स्क्रॉल शुरू, टेबल पता करने के लिए कितनी दूर तक/तो स्क्रॉल करने के लिए नीचे है कि पत्र आप को स्पर्श कर रहे जरूरत तालिका में उचित खंड से मेल खाता है। यह विधि उस अनुभाग का इंडेक्स वैल्यू (पूर्णांक) देता है जिसे आप वर्तमान में इंडेक्स में स्पर्श कर रहे हैं।

+0

क्या इसका मतलब यह है कि अगर मेरे पास एजेड की अनुक्रमणिका है और एजेड से सेक्शन-टाइटल है, तो मैं सिर्फ इंडेक्स से गुजर सकता हूं? यदि नहीं, तो मैं इस अनुभाग में इंडेक्स को मैप करना चाहूंगा? – brainray

0

"-tableView: sectionForSectionIndexTitle: atIndex:" के बारे में आपके द्वारा पूछे जाने वाले तरीके UITableView सादे शैली डेटा आबादी के संबंध में 2 (नीचे) संबंधित सूचियों को जोड़ रहा है।

पहला सूची: "संपर्क ऐप" में तालिका दृश्य-अनुभाग-शीर्षक-सूची "टीवीएसटीएल", यह लोगों के अंतिम नामों द्वारा रचित/क्रमबद्ध है। यह अनुभाग-हेडर स्क्रीन के बाईं ओर दिखाई देता है।

दूसरा सूची: आम तौर पर स्क्रीन के दाईं ओर दिखाए गए इंडेक्स-लिस्ट-टाइटल "आईएलटी", यह ऊपर सेक्शन-हेडर के बारे में इंडेक्स का मनमाना समूह हो सकता है। यह सूची उपयोगकर्ता को टैप करने के लिए है, यह स्क्रॉलिंग बार की तरह काम करती है।

आईओएस दस्तावेज इन 2 सूचियों के बारे में बहुत स्पष्ट नहीं है, क्योंकि "टीवीएसटीएल" वर्तमान लिस्टिंग "आईएलटी" से बड़ी या छोटी हो सकती है, इस पर कोई प्रतिबंध नहीं है कि सूची लंबी है।

और "संपर्क एपीपी" इस महत्वपूर्ण बिंदु को दिखाने के लिए एक बुरा उदाहरण है ... जब तक आपके पास बहुत कम लोगों के नाम नहीं हैं (चलो 10 से कम कहें), या यदि आपके पास चीनी-चरित्र वाले लोगों के नाम हैं, जिनके पास है कोई खिताब नहीं है, लेकिन खंडों में समूहित किया गया है, और उन वर्गों को अनुक्रमित नहीं किया जा सकता है।

इसलिए, जब उन 2 सूचियों का मिलान नहीं होता है, "-tableView: sectionForIndexTitle: atIndex:" TableView के अगले स्क्रॉलिंग आंदोलन के बारे में समाधान प्रदान कर रहा है।

"एक अनुक्रमित सूची पॉपुलटिंग" पर ऐप्पल का दस्तावेज़ विवरण में इसके सुझाए गए कार्यान्वयन को बताता है, लेकिन यह थोड़ा बोझिल है (4 फॉर-लूप, 5 Arrays का उपयोग करके)। यदि आप "तालिका तालिका को प्रोग्रामेटिक रूप से बनाना" नहीं चाहते हैं, तो आप उन कोड को छोड़ सकते हैं, अन्यथा, वे लिस्टिंग 4-5 में हैं, लिस्टिंग 4-6, लिस्टिंग 4-7, लिस्टिंग 4-8, लिस्टिंग 4-9 Table View Programming Guide for iOS

संबंधित मुद्दे