ios - TableView के लिए NSIndexPath कैसे बनाएं




iphone uitableview (5)

indexPathForRow एक क्लास विधि है!

कोड पढ़ना चाहिए:

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;

मुझे परिभाषित किए गए फ़ंक्शन में तालिका के पंक्ति 1 को हटाने की आवश्यकता है। deleteRowAtIndexPath का उपयोग करने के लिए आपको एक सेक्शन और पंक्ति के साथ IndexPath उपयोग करना होगा। मैं इस तरह एक इंडेक्सपैथ कैसे बना सकता हूं?

Int {1} के साथ एक सरणी इसके एकमात्र सदस्य के रूप में दुर्घटनाग्रस्त हो जाएगी; एनएसएलओजी संदेश बताता है कि अनुभाग को भी परिभाषित करने की जरूरत है।

* संपादित करें -> सेल हटाने से संबंधित कोड:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];

स्विफ्ट में अनिवार्य उत्तर: NSIndexPath(forRow:row, inSection: section)

आप देखेंगे कि NSIndexPath.indexPathForRow(row, inSection: section) तेजी से उपलब्ध नहीं है और आपको NSIndexPath.indexPathForRow(row, inSection: section) लिए पहली विधि का उपयोग करना होगा।


स्विफ्ट 3 के लिए यह अब है: IndexPath(row: rowIndex, section: sectionIndex)


सूचकांक पथ को त्वरित रूप से बनाने के लिए [NSIndexPath indexPathForRow:inSection:] का उपयोग करें।

संपादित करें: स्विफ्ट 3 में:

let indexPath = IndexPath(row: rowIndex, section: sectionIndex)

सामान्य विधि का उपयोग करने के बजाय

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

आप इसे लागू करना चाहते हैं:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

जैसा कि आप देख सकते हैं, दूसरा पाठ के लिए केवल स्ट्रिंग के बजाय UIView देता है। इसलिए आप अपना खुद का दृश्य (लेबल आदि के साथ) अनुकूलित कर सकते हैं और इसे वापस कर सकते हैं।

यहां एक उदाहरण दिया गया है कि आप यह कैसे कर सकते हैं (उपरोक्त विधि में लागू करने के लिए):

// create the parent view that will hold header Label
UIView* customView = [[[UIView alloc] initWithFrame:CGRectMake(10,0,300,60)] autorelease];

// create image object
UIImage *myImage = [UIImage imageNamed:@"someimage.png"];;

// create the label objects
UILabel *headerLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.font = [UIFont boldSystemFontOfSize:18];
headerLabel.frame = CGRectMake(70,18,200,20);
headerLabel.text =  @"Some Text";
headerLabel.textColor = [UIColor redColor];

UILabel *detailLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
detailLabel.backgroundColor = [UIColor clearColor];
detailLabel.textColor = [UIColor darkGrayColor];
detailLabel.text = @"Some detail text";
detailLabel.font = [UIFont systemFontOfSize:12];
detailLabel.frame = CGRectMake(70,33,230,25);

// create the imageView with the image in it
UIImageView *imageView = [[[UIImageView alloc] initWithImage:myImage] autorelease];
imageView.frame = CGRectMake(10,10,50,50);

[customView addSubview:imageView];
[customView addSubview:headerLabel];
[customView addSubview:detailLabel];

return customView;

उम्मीद है की वो मदद करदे





ios iphone uitableview nsindexpath