मुझे में कस्टम सेल के लिए NSIndexPath
प्राप्त करने की आवश्यकता है। यहां समस्या है: मैं अपने कस्टम सेल से NSNotification
को अपने UITableViewController
पर editingDidBegin
को अपने कस्टम सेल में UITextField
से कॉल करता हूं। UITableViewController
में, UITextField
संपादन शुरू करने पर मैं UITableView
का आकार बदलता हूं, और उसके बाद टेबल दृश्य को उस सेल पर स्क्रॉल करना चाहता है जिसमें UITextField
पहला प्रतिसादकर्ता है। लेकिन मैं यह नहीं समझ सकता कि सेल के indexPath
को वापस कैसे करें, जहां UITextField
संपादित किया जा रहा है। मैंने कई तरीकों से कोशिश की है, लेकिन यह अभी भी काम नहीं कर रहा है। एक तरीका यह है: मेरे cstomCell कक्षा में मैं पंक्ति [self setSelected:YES]
और अपने टीवी नियंत्रक तो इन का उपयोग कर चयन अगर मैं [self.tableV indexPathForSelectedRow]
की पंक्ति NSLog
यह हमेशा रिटर्न 0 यहां तक कि अपने हमेशा हालांकि नहीं 0.कस्टम सेल से NSIndexPath वापसी? (UITableView)
उत्तर
बस सेल के लिए एक मूल्य देना इसकी tag
संपत्ति। तो फिर तुम जब से तुम अपने कस्टम सेल में एक UITextField है आप में cell.textField.delegate = self;
जगह कर सकते हैं एक बार आप सेल आप इस
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
तरह NSIndexPath प्राप्त कर सकते हैं इस
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
तो फोन करके कि सेल प्राप्त कर सकते हैं
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
डेटा स्रोत विधि। इस तरह आपको कस्टम सेल में एनएसएनोटिफिकेशन सेट अप नहीं करना पड़ेगा। इसके अलावा इस एक ही विधि में आप दोनों अपनी कोशिकाओं इस cell.textField.tag = indexPath.row;
की तरह पाठ क्षेत्र और इस cell.tag = indexPath.row;
तरह सेल अब आप UITextField प्रतिनिधि निर्धारित किया है कि टैग कर सकते हैं, अब आप अपने UITableViewController कक्षा में इस विधि जगह कर सकते हैं
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
}
उपर्युक्त UITextField प्रतिनिधि विधि आपको उस सेल के लिए इंडेक्सपैथ प्राप्त करनी चाहिए जिसे आपने वर्तमान में चुना है।
मैं इतनी तरह मेरे कोशिकाओं टैग करना चाहता:
/* Create a tag based on the section and row of a cell(used to retrive the cell for the beginEditingNextCell method. */
-(NSInteger)tagForIndexPath:(NSIndexPath*)path {
return path.section * 1000 + path.row + 1;
}
दूसरी तरह के एक कस्टम प्रतिनिधि का उपयोग कर beginEditing डेटा पास करने के लिए है, और एक सेल मॉडल है, जो आप तो अपने पथ यह पता लगाने के लिए उपयोग कर सकते हैं शामिल इस पर निर्भर करता है कि आप डेटा कैसे संग्रहीत कर रहे हैं।
मेरी GitHub परियोजना बाहर की जाँच करें, यह कीबोर्ड के लिए आकार बदलने और अगले संपादन योग्य सेल पर टैब के रूप में इस मामले को संभालने के लिए, साथ ही कोड है: https://github.com/andrewzimmer906/XCell
आपकी जिथब प्रोजेक्ट एक पूर्ण गड़बड़ है, कम से कम 20 त्रुटियां और निर्माण पर चेतावनियां। क्या आप कृपया मेरे प्रश्न से संबंधित कुछ और कोड प्रदान कर सकते हैं? मेरे पास 50 का खुली बक्षीस है। – JonasG
इस कोड की कोशिश ..
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITableView *tableView;
UITableViewCell* superViewCell = [self returnSuperCellViewOfTextField:textField];
if(superViewCell)[tableView scrollToRowAtIndexPath:[tableView indexPathForCell:superViewCell] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
-(id)returnSuperCellViewOfTextField:(id)viewToCheck
{
id superView = [viewToCheck superview];
if([viewToCheck isKindOfClass:[UITableViewCell class]] && superView)return superView;
else if(([viewToCheck respondsToSelector:@selector(superview)] && superView)) return [self returnSuperCellViewOfTextField:superView];
return nil;
}
इस (आपके जवाब यह है कि आप नीचे दिए गए पूर्व में दी गई) अभी भी काम करता है अगर आप प्रत्येक कोशिका ?:
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
then once you have the cell you can get the NSIndexPath like this
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
में कई texfields है चूंकि आप एकहै क्या अपने कस्टम सेल मेंआप
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
डेटा स्रोत विधि में cell.textField.delegate = self;
रख सकते हैं। साथ ही इस विधि में आप अपने सेल टेक्स्ट टेक्स्ट दोनों को इस सेल.textField.tag = indexPath जैसे टैग कर सकते हैं।पंक्ति; और सेल इस सेल.tag = indexPath.row की तरह;
अब आप UITextField प्रतिनिधि निर्धारित किया है कि, अब आप अपने UITableViewController कक्षा में इस विधि जगह कर सकते हैं
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
मैं 8 कोशिकाओं के साथ एक tableview है, और प्रत्येक कोशिका में मैं 6 texfields है, और भी टेबलव्यू गतिशील है, इसलिए उपयोगकर्ता अधिक सेल्स को सम्मिलित कर सकता है ... लेकिन मुझे प्रत्येक टेक्सफील्ड में उपयोगकर्ता द्वारा दर्ज किए गए पाठ को सहेजने में परेशानी हो रही है। क्या यह संभव है कि "cell.textField.tag = indexPath.row" के साथ, नियंत्रक पहचानने वाले टेक्साफ़ील्ड में है?
- 1. NSIndexPath
- 2. UITableView सेल एनीमेशन जोड़ें
- 3. UITableView सेल टेक्स्ट लेबल रंग
- 4. एक कस्टम ऊंचाई पर UITableView स्थिर सेल कैसे सेट करें?
- 5. UITableView सेल
- 6. UITableView cell.contentView.bounds.size.width सेल रीयूज
- 7. कस्टम UITableView
- 8. UISearchDisplayController और कस्टम सेल
- 9. UITableView कस्टम स्क्रॉलबार
- 10. प्रोग्रामेटिक रूप से UITableView सेल को हाइलाइट करें
- 11. स्टोरीबोर्ड से कस्टम प्रोटोटाइप सेल ऊंचाई पुनर्प्राप्त करें?
- 12. UITableView सेल पर जाएं
- 13. उपयोगकर्ता को UITableView सेल
- 14. UISwitch एक UITableView सेल
- 15. UITableView लोड सेल रिवर्स
- 16. UITableView प्रत्येक सेल
- 17. UITableView सेल इंडेक्सपाथ
- 18. UITableView डेटा स्रोत tableView से एक सेल लौटाएगा: cellForRowAtIndexPath: अपवाद
- 19. कस्टम सेल से UILabel छाया चयनित रंग
- 20. UITableView सेल में UIButton जैसे "ईवेंट हटाएं"
- 21. UITableView सेल में EXEC_BAD_ACCESS सेलफोररएट इंडेक्सपैथ
- 22. कस्टम सेल (प्रोग्रामेटिक रूप से) के साथ तालिका दृश्य
- 23. UITableview
- 24. UITableView सेल में छवियों को कैसे जोड़ा जाए?
- 25. UITableView
- 26. UITableView
- 27. UITableView
- 28. कस्टम यूआईटीबल व्यू डायनामिक सेल ऊंचाई
- 29. UITableView
- 30. UITableView सेल रीफ्रेश करने की समस्या
क्या आप उसे 'फ्रेम' नहीं ले पाएंगे? – aopsfan