2013-08-26 9 views
7

में संपादन किए जाने पर सेल चौड़ाई को विस्तार से कैसे रोकें यदि आप एक नया पता जोड़ने के लिए "+" संपादन आइकन पर टैप करते समय आईपैड संपर्क ऐप में देखते हैं, तो आइकन गायब होने पर बाईं ओर विस्तार नहीं होता है (नीचे 1 स्क्रीन कैप्चर देखें)। मैं कुछ ऐसा करने की कोशिश कर रहा हूं लेकिन मुझे कोई भाग्य नहीं है (नीचे दूसरी स्क्रीन कैप्चर देखें)। मैंने सुझाए गए समाधान का उपयोग करने की कोशिश की here लेकिन काम नहीं किया।UITableView

रिकॉर्ड के लिए मैं वास्तविक संपर्क ऐप को दोहराने या संपर्कों के साथ एकीकृत करने की कोशिश नहीं कर रहा हूं। हम कुछ असंबंधित पर काम कर रहे हैं और मेरा डिजाइनर सिर्फ इस पैटर्न का पालन करना चाहता है ताकि कुछ पीओसी काम कर सकें ताकि मैं यह देख सकूं कि मैं क्या कर सकता हूं।

संपादित करें - मेरी सोच को सत्यापित करने के लिए एक और सवाल यह है कि संपर्क ऐप में क्या हो रहा है जब "+" आइकन टैप किया गया है, यह सेल अब और संपादन नहीं करने के लिए सेट है, इन टेक्स्ट फ़ील्ड्स को जोड़ा गया है सेल, लेबल बदल गया, और फिर पुनः लोड करेंडेटा कहा जाता है, है ना?

संपादित करें - सुझाव टिम के लिए धन्यवाद, मैं लगभग वहां हूं! मैंने वास्तव में 1/2 का काम किया था लेकिन फिर इस मुद्दे पर चल रहा था कि "+" आइकन एनिमेट नहीं कर रहा था, बस अचानक गायब हो गया। तो मैंने reloadRows जोड़ा ... प्रतिबद्ध करने के लिए कॉल करेंइटिंग स्टाइल लेकिन अब पूरा सेल गायब हो जाता है। - "+" बटन बस अचानक गायब हो गया था

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCellEditingStyle editingStyle = UITableViewCellEditingStyleNone; 
    if (self.showEditingIcon) { 
     editingStyle = UITableViewCellEditingStyleInsert; 
     self.showEditingIcon = NO; 
    } 
    return editingStyle; 
} 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // tableView.editing = NO; 
    // tableView.editing = YES; 
    [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

तुम मेरी टिप्पणी की बाहर लाइनों क्या मैं मूल रूप से किया था, जो काम कर रहा था, लेकिन जैसा कि मैंने कहा, एनिमेट नहीं किया गया था से देख सकते हैं: यहाँ मेरी कोड है। अगर मैंने कॉल करने की कोशिश की [tableView setEditing: कोई एनिमेटेड नहीं: हाँ] यह काम नहीं करेगा। जब मैंने इन कॉल को UIView एनीमेशन ब्लॉक में डालने का प्रयास किया तो यह अच्छा नहीं लग रहा था - सेल को अस्थायी रूप से बाएं और पीछे स्थानांतरित कर सकता था। हालांकि अब रीलोड कॉल के साथ सेल पूरी तरह से गायब हो जाता है। फिलहाल मैं अपने सेल में कोई बदलाव नहीं कर रहा हूं (उदाहरण के लिए मैं टेक्स्ट फ़ील्ड्स नहीं जोड़ रहा हूं, आदि ...) क्योंकि मैं सेल को बाएं काम का विस्तार किए बिना "+" बटन एनिमेट करना चाहता हूं पहले पुनरावृत्ति पर।

किसी भी मदद की बहुत सराहना की। धन्यवाद।

enter image description here enter image description here

उत्तर

2

चाल हमेशा संपादन मोड में होने के लिए ऐसी है कि सेल दांतेदार बनाना निरंतर बनी हुई है। जब सेल भरी हुई है, तो आप यह तय करें कि राज्य में है और उचित संपादन शैली लौटने के लिए, या तो "सम्मिलित" शैली या "कोई नहीं":

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    BOOL shouldShowInsertButton = ...;//check internal state for cell 
    return shouldShowInsertButton ? UITableViewCellEditingStyleInsert : UITableViewCellEditingStyleNone; 
} 

फिर जब संपादित करें बटन टैप किया जाता है, आप अपने आंतरिक अद्यतन राज्य और सेल को फिर से लोड:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    ...;//update internal state for cell 
    [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

संपादित

यहाँ एक काम कर sample project है।

+0

यह शानदार है - मैं लगभग वहां हूं, लेकिन मैं कुछ अजीब में चल रहा हूं। जब मैं नीचे दिए गए कोड का उपयोग करता हूं तो मेरा पूरा सेल गायब हो जाता है। ओह, मेरे मूल पोस्ट में जो कुछ भी मैं बात कर रहा हूं उसे संपादित करने और शामिल करने जा रहा हूं। – fogwolf

+0

एक काम कर रहे नमूना परियोजना जोड़ा गया। उम्मीद है की वो मदद करदे। –

+0

ग्रेट बहुत बहुत धन्यवाद! इसे अभी जांच रहा है। इस बीच में मेरे मूल पोस्टिंग में एक संपादन जोड़ा गया। – fogwolf