2013-04-28 3 views
8

के अलावा तालिका दृश्य स्क्रॉल को क्षैतिज रूप से बनाता है I कोड में UITableViewController बना रहा हूं और इसे नेविगेशन स्टैक के शीर्ष पर दबा रहा हूं। यह तालिका दृश्य केवल टेक्स्ट आइटम्स की एक साधारण सूची दिखाने के लिए है।UITableView contentInset लंबवत

मैं अपने तालिका दृश्य जो मैं अपने UITableViewController के init विधि में जोड़ने

self.tableView.contentInset = UIEdgeInsetsMake(7.0f, 5.0f, 7.0f, 5.0f); 

हालांकि, के लिए कुछ contentInset जोड़ने के लिए जब मैं तालिका देखें ऐसा लगता है बाएँ और दाएँ contentInset वास्तव में फैला है लोड की जरूरत है 10 तक मेरी टेबल की चौड़ाई देखें। अब मैं एक छोटा क्षैतिज स्क्रोल करने योग्य क्षेत्र देख रहा हूं। मैं अपने टेबल व्यू पर किसी भी प्रकार की क्षैतिज स्क्रॉलिंग नहीं चाहता हूं। अगर मैं सामग्री इन्सेट कोड को हटा देता हूं, तो मेरा टेबल व्यू स्पष्ट रूप से व्यवहार करता है यानी वर्टिकल स्क्रॉलिंग के लिए प्रदान करता है। मैं इस तरह कैसे रख सकता हूं लेकिन मेरी सामग्री के साथ जगह में प्रवेश करें? मैंने अपनी सामग्री को Size.width को 10 में देखने की कोशिश की, विल्लएपियर, इसका कोई प्रभाव नहीं पड़ा।

यह कोई डुप्लिकेट होने के लिए, लेकिन कोई स्वीकार्य जवाब के साथ लगता है: UITableView ContentInsets scrolling content horizontally

नकली में मैं चित्तीदार लाइन के साथ वांछित contentInset में चिह्नित किया है ---

enter image description here

धन्यवाद।

+1

आप तालिका दृश्य के चारों ओर सीमा रखने के प्रभाव को प्राप्त करने का प्रयास कर रहे हैं? – Wain

+0

हां, बिल्कुल। मैं एक स्क्रीनशॉट जोड़ूंगा ... –

+0

सीमा मुझे सोच रही है .. मैंने सीमा दृश्य और चौड़ाई सेट करने के लिए tableView.layer का उपयोग करने का प्रयास किया, हालांकि, मैं सेल सीमा खो रहा हूं क्योंकि तालिका दृश्य सीमा उस पर ओवरले करता है। क्या इसे नकली की तरह काम करने का कोई साफ तरीका है? पढ़ने के लिए धन्यवाद! –

उत्तर

4

मैं केवल शीर्ष और निचले इन्सेट्स को सेट करना समाप्त कर दिया। बाएं और दाएं इन्सेट को देखने और महसूस करने के लिए, मैंने कस्टम सेल को स्क्रीन के रूप में चौड़ा बनाया है। लेकिन वास्तविक सेल सामग्री कस्टम सेल के भीतर थोड़ा संकुचित सबव्यू तक सीमित थी। इस प्रकार, सबव्यू के बाएं और दाएं स्थान पर स्पेस बचे हुए थे।

0

शायद आपको स्क्रॉल व्यू की बाउंस संपत्ति को YES पर सेट करना चाहिए। और सामग्री सेट सेट न करें।

+0

यह सामग्री इन्सनेट कैसे दिखाएगा? –

+0

आपको सीमा उत्पन्न करने के लिए सामग्रीइन्ससेट का उपयोग नहीं करना चाहिए, यदि आप ऐसा करते हैं, तो आपकी सीमा दृश्य के बाहर प्रदर्शित की जाएगी! – yirenjun

0

जैसा कि आपने 2 काम करने होंगे लगता है:

  1. एक कंटेनर को देखने के लिए तालिका दृश्य जोड़ें और तालिका दृश्य बनाने के frame पतले (बाएँ और दाएँ सीमाओं को जोड़ने के लिए)।
  2. केवल ऊपर और नीचे के लिए contentInset जोड़ें।
+0

जवाब देने के लिए धन्यवाद। मुझे UITableViewController को उप-वर्ग करना पड़ा था इसलिए एक कंटेनर को इसके दृश्य में जोड़ना (टेबल व्यू) बहुत जटिल लग रहा था। मुझे सेल व्यू को कस्टमाइज़ करके विज़ुअल इन्सेट मिला। –

0

एक और तरीका है कि काम कर सकता था, बजाय tableView फ्रेम की स्थापना की, आप सेल के contentView के लिए फ्रेम, कुछ इस तरह,

- (void) layoutSubviews 
{ 
    [super layoutSubviews]; 

    CGRect frame = self.contentView.frame; 
    frame.size.width = frame.size.width * 0.9; //90% of total width 
    frame.origin.x = self.center.x - (frame.size.width/2); //center the contentView 
    self.contentView.frame = frame; 
} 

ऊपर का उपयोग कर, यू किसी भी छोड़ दिया जोड़ सकते हैं सेट कर सकते हैं वह यह है कि या सेल के लिए आपको सही या बाएं पैडिंग की आवश्यकता है। और सभी उप दृश्यों को contentView में जोड़ा जाएगा, इसलिए वहां कोई समस्या नहीं है।

खुश कोडिंग ..!