2012-05-27 8 views
31

मैं अपनी तालिका चाहता हूं कि इस मामले में "उदाहरण" में टेक्स्ट के साथ 6 पंक्तियां दिखें। जहां तक ​​मैं कह सकता हूं, मेरे पास numberOfSectionsInTableView: और numberOfRowsInSection: ठीक से सेट है। नीचे दिए गए उदाहरण कोड देखें:UITableView संख्या में निर्दिष्ट की तुलना में अधिक पंक्तियों को दिखा रहा है OfRowsInSection:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 
    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    // Return the number of rows in the section. 
    return 6; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{ 

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    cell.textLabel.text = @"Example"; 

    return cell; 
} 

समस्या यह है कि जब आप पंक्तियों को नहीं/अस्तित्व में नहीं है चाहिए के लिए लाइनों दिखा नीचे छवि देखें।

enter image description here

कैसे मैं पिछले पंक्ति 6 ​​दिखा लाइनों से छुटकारा मिलता है?

+3

इस से स्क्रॉल करने के लिए की जरूरत है कम पंक्तियां के साथ सभी सादे तालिका विचारों के डिफ़ॉल्ट व्यवहार है, तो बस पंक्तियों और वर्गों की संख्या निर्धारित करने से मदद नहीं मिलेगी। आपको एक और तरीका खोजने की आवश्यकता होगी ... – BoltClock

उत्तर

55

ऐसा करने का generally accepted way जैसे CGRectZero का एक फ्रेम आकार के साथ एक पाद लेख दृश्य जोड़ने के लिए है, पाद लेख, और इसलिए यह विभाजक लाइनों को प्रदर्शित करना बंद कर देता है। हालांकि, चूंकि पाद लेख में सीजीआरएक्टजेरो के फ्रेम के रूप में, कुछ भी प्रदर्शित नहीं होता है, और इसलिए दृश्य प्रभाव यह है कि विभाजक बस बंद हो जाते हैं।

+0

मैं अतिरिक्त कोशिकाओं से कैसे छुटकारा पा सकता हूं? मैं उन्हें दिखाना नहीं चाहता - मैं बल्कि ग्रे हेडर्स दिखाता हूं जो सेक्शन हेडर में दिखाता है। UITableViewStyleGrouped के लिए UITableViewStyleGrouped –

0

आप की तर्ज पर कुछ कर सकते हैं:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:7 inSection:0]; 
[self.mytableView cellForRowAtIndexPath:indexPath].hidden = YES; 

इम यकीन है कि वहाँ कुछ बेहतर तरीके हैं लेकिन यह पहली बात यह है कि मन में आए है।

+0

अगर यह एक बेवकूफ सवाल है तो मुझे माफ़ कर दो, लेकिन आप कहां सुझाव दे रहे हैं कि मैंने यह कोड रखा है? (किस विधि के अंदर?) – tarheel

+0

कहीं भी फिट लगता है –

0

यदि आप अंतिम पंक्ति के नीचे दिखाई देने वाली हल्की भूरे रंग की रेखाओं का जिक्र कर रहे हैं, तो यह केवल डिफ़ॉल्ट तरीका है UITableView पंक्ति विभाजक खींचता है।

आप इंटरफ़ेस बिल्डर में सेपरेटर शैली को बदलने का प्रयास कर सकते हैं (नीचे दी गई छवियां देखें) यह देखने के लिए कि उनमें से कोई आपकी पसंद के लिए अधिक हो सकता है या नहीं।

[tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]] 

क्या करता तालिका बता है कि वहाँ एक है:

enter image description here enter image description here

+0

सुझाव के लिए धन्यवाद, लेकिन मैं वहां मौजूद पंक्तियों के लिए विभाजक चाहता हूं, लेकिन शेष में से कोई भी दिखा रहा है। – tarheel

0

आपने यह नहीं कहा कि आप अंतिम पंक्ति से क्या देखना चाहते हैं। यदि आप केवल विंडो पृष्ठभूमि देखना चाहते हैं, तो बस अपने तालिका दृश्य को UIView में एम्बेड करें जो कि पंक्तियों की संख्या दिखाने के लिए पर्याप्त लंबा है जिसे आप देखना चाहते हैं। यदि आप स्क्रॉल किए बिना अधिक पंक्तियां देखना चाहते हैं, तो आपको पंक्तियों की संख्या के आधार पर उस दृश्य के आकार को समायोजित करना होगा।

7

यह आपकी तालिका-दृश्य ऊंचाई की वजह से है। आपके द्वारा लिखे गए मौसम

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 

// अनुभाग में पंक्तियों की संख्या लौटाएं। वापसी 6; }

लेकिन इसकी शो पंक्तियां तालिका-दृश्य आकार के अनुसार हैं। यदि आप यह अतिरिक्त लाइन नहीं दिखाना चाहते हैं तो समूहबद्ध करने के लिए UITableView शैली सादा बनाएं।

+0

+1। यह तालिका के पूरे प्रदर्शन को प्रभावित करता है, न कि प्रश्नकर्ता ने क्या पूछा। विभाजक को हटाने शैली को बदलने का एक दुष्प्रभाव है। यदि समूहबद्ध शैली को बाद के संस्करणों में अतिरिक्त विभाजक शामिल करने के लिए बदला गया है तो यह शैली परिवर्तन म्यूट है। –

+0

-1 के लिए – Tim

+0

अच्छा एक। अच्छा, आसान, त्वरित फिक्स! –

-1

प्रोग्राम के रूप में इसे निकालने के लिए, इस का उपयोग करें: [yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

+0

यह सभी कक्षों के बीच विभाजक लाइनों को हटा देगा –

5

लघु और सरल जवाब ..

self.tableView.tableFooterView = [UIView new]; 
20

स्विफ्ट संस्करण

सबसे आसान तरीका tableFooterView गुण सेट करने के लिए है:

override func viewDidLoad() { 
    super.viewDidLoad() 
    // This will remove extra separators from tableview 
    self.tableView.tableFooterView = UIView(frame: CGRect.zero) 
} 
+2

स्विफ्ट 3: '= UIView (फ्रेम: CGRect.zero)' – fbynite

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