Xcode iOS仅在此部分添加部分和行

时间:2015-02-24 15:19:01

标签: ios xcode

我想在最后创建的部分中添加Sections并添加行。

但是当我添加一个部分并添加一行之后,它会为所有部分添加行,而我只想要最后创建的部分。

我这样做:

@interface SectionTestViewController ()
{
    NSMutableArray *sectionsArray;
    NSMutableArray *rowsInSectionsArray;
    NSInteger currentSection;
}
@end

@implementation SectionTestViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myTableView.delegate = self;
    self.myTableView.dataSource = self;

    sectionsArray = [[NSMutableArray alloc]init];
    rowsInSectionsArray = [[NSMutableArray alloc]init];

    currentSection = 0;
}

#pragma tableview delegate and datasource methods

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return sectionsArray.count;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return rowsInSectionsArray.count;
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [sectionsArray objectAtIndex:section];
}

添加章节的按钮的操作:

- (IBAction)addSectionButton:(id)sender {
    [sectionsArray addObject:[NSString stringWithFormat:@"Section %lu", (unsigned long)sectionsArray.count]];

    currentSection++;

    [self.myTableView reloadData];
}

添加行的按钮的操作:

- (IBAction)addRowButton:(id)sender {
    [rowsInSectionsArray addObject:[NSString stringWithFormat:@"Ligne %lu", (unsigned long)rowsInSectionsArray.count]];

    [self.myTableView reloadData];
}

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你应该做这样的事情:

@interface SectionTestViewController ()
{
    NSMutableArray *sectionsArrays;
    NSMutableArray *rowsInSectionsArray;
    NSInteger currentSection;
}
@end

@implementation SectionTestViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myTableView.delegate = self;
    self.myTableView.dataSource = self;

    sectionsArray = [[NSMutableArray alloc]init];
    rowsInSectionsArray = [[NSMutableArray alloc]init];

    currentSection = 0;
}

#pragma tableview delegate and datasource methods

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return sectionsArray.count;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [rowsInSectionsArrays objectAtIndex:section].count;
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [sectionsArray objectAtIndex:section];
}

添加章节按钮的操作:

- (IBAction)addSectionButton:(id)sender {
    [sectionsArray addObject:[NSString stringWithFormat:@"Section %lu", (unsigned long)sectionsArray.count]];
    [rowsInSectionsArrays addObject:[[NSMutableArray alloc] init]];

    currentSection++;

    [self.myTableView reloadData];
}

在最后一节添加Row的按钮操作:

- (IBAction)addRowButton:(id)sender {
    [[rowsInSectionsArray objectAtIndex:currentSection] addObject:[NSString stringWithFormat:@"Ligne %lu", (unsigned long)[rowsInSectionsArray objectAtIndex:currentSection].count]];

    [self.myTableView reloadData];
}

我刚刚将rowsInSectionsArray转换为数组数组。它包含的每个数组都包含一个部分的行。

请务必在tableView:cellForRowAtIndexPath:处执行相同操作。