StoryBoards में तालिका हेडर दृश्य


191

StoryBoard में टेबल हैडर व्यू (tableHeaderView) सम्मिलित करने का एक तरीका है (जैसे हम इंटरफ़ेस बिल्डर में करते थे)?

जवाबों:


349

ऐसा लग रहा है कि एक मेज दृश्य के शीर्ष पर नियंत्रण रखता है। मुझे उम्मीद नहीं थी कि यह इतना आसान होगा।

ड्रॉप से ​​पहले

ड्रॉप से ​​पहले

ड्रॉप के बाद

ड्रॉप के बाद


29
मुझे यह जानकर आश्चर्य हुआ कि यह कैसे किया जाता है। मैंने अपने कार्यान्वयन में देखा कि इसके सही ढंग से काम करने के लिए मुझे अपनी ऊँचाई को हटाना पड़ा। InSection: (NSInteger) अनुभाग कोड अन्यथा मैं शीर्ष लेख दृश्य के ऊपर अतिरिक्त स्थान के साथ समाप्त हो जाऊंगा। इसके अलावा, इस शीर्ष लेख के लिए तालिका दृश्य के शीर्ष पर "छड़ी" करने के लिए, मुझे viewForHeaderInSection लागू करना था: (NSInteger) अनुभाग और इस दृश्य को वापस करें।
ओज

13
यह केवल तभी काम करता है जब आपके पास तालिका में कम से कम एक प्रोटोटाइप सेल हो।
Accatyyc

4
@ क्या आप इस बात पर विस्तार से बता सकते हैं कि आप शीर्ष को तालिका दृश्य के शीर्ष पर "छड़ी" करने में कैसे सक्षम थे? मैंने आँख बंद करके लागू करने की कोशिश की viewForHeaderInSection:और मुझे यह कहते हुए एक त्रुटि हुई कि "एक साथ बाधाओं को पूरा करने में असमर्थ"। (मेरा सवाल यहाँ देखें: stackoverflow.com/questions/14554051/… )
ryanrhee

2
धन्यवाद, मैं ऐसा नहीं कर सकता था जब तक मुझे पता नहीं था कि यह काम करेगा, सटीक ड्रैग की आवश्यकता है। मैंने कई बार ऐसा करने की कोशिश की ...
डेव रॉस

1
आप ड्रैगिंग करने के लिए बाईं ओर की रूपरेखा का उपयोग कर सकते हैं, जो कि पहले प्रोटोटाइप सेल के ऊपर सटीक स्थान पर हिट करने की कोशिश करने से अधिक आसान है, यदि आप टेबल हेडर दृश्य सेट करना चाहते हैं। मैंने देखा - शायद एक एक्सकोड बग (5.0) - यह केवल तभी काम करेगा जब मैंने पहले नियमित पदानुक्रम से बाहर का दृश्य देखा था; मैं इसे उस दृश्य के लिए रूपरेखा के नीचे तक ले गया। फिर, एक दूसरे चरण में, मैं इसे टेबल व्यू पर ले जा सका।
डैनियल श्नाइलर

10

आप इसे दस्तावेज़ रूपरेखा (लेआउट के बजाय) के नीचे UIView/ UIImageViewनीचे खींचकर आसानी से कर सकते हैं UITableView

यदि आप दस्तावेज़ की रूपरेखा के बजाय लेआउट में खींचने का प्रयास करते हैं, UITableViewCellतो शीर्ष हैंडलिंग पर कूद जाएगा जो निराशाजनक है!


-2

टेबलव्यू के शीर्ष पर एक दृश्य को खींचना और छोड़ना केवल एक स्क्रीन आकार के लिए काम करता है, कम से कम Xcode 11 में। यह विभिन्न स्क्रीन पर अच्छी तरह से आकार नहीं लेता है।

मैंने सिर्फ एक दृश्य बनाया और उसे स्टोरीबोर्ड में तालिका के पीछे छोड़ दिया। मैंने इसके लिए एक IBOutlet बनाया:

@IBOutlet weak var audioView: UIView!

तब टेबलव्यू कोड में मैंने किया था:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return audioView
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 142
}

इसने सभी स्क्रीन आकारों पर अच्छा काम किया।


1
सवाल टेबल हेडर व्यू के बारे में है, न कि सेक्शन हेडर व्यूज के बारे में।
आर। रिनकॉन

@R। Rincón, मैंने एक अनुभाग हेडर का उल्लेख कहाँ किया है? विधियों में अनुभाग रूपरेखा से आवश्यक हैं। यदि आपको पता नहीं है कि हर TableView में कम से कम एक सेक्शन है। यदि आपके पास अनुभाग नहीं हैं, तो केवल खंड 0 पास करें
बद्र

यह कोड सेक्शन हेडर के रूप में हर सेक्शन के लिए AudioView देता है। यदि कोई इसे लागू करता है, तो tableView.tableHeaderView शून्य हो जाएगा। यदि उनके पास 5 खंड हैं, तो उनके पास पाँच खंड हेडर होंगे। यदि उनके पास पहले से ही अनुभाग हेडर हैं और टेबल हेडर दृश्य जोड़ना चाहते हैं, तो यह उत्तर उनकी मदद नहीं करता है। यह उस प्रश्न का उत्तर नहीं देता है, जो विशेष रूप से उल्लेख करता है tableHeaderView
आर। रिनकॉन

आप प्रत्येक अनुभाग के लिए शीर्ष लेख दृश्य को विधि के अंदर कुछ तर्क के साथ निर्दिष्ट कर सकते हैं। TableViews को ध्यान में रखते हुए वर्गों के साथ बनाया गया। आपके पास हमेशा अनुभाग होते हैं, यदि आप नहीं करते हैं, तो वह अनुभाग 0. होगा। अनुभाग को निर्दिष्ट किए बिना हेडर दृश्य को निर्दिष्ट करने की कोई विधि नहीं है।
बद्र

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.