在uitableview中插入新行

时间:2011-08-03 23:04:02

标签: iphone objective-c xcode uitableview

我有一个非常简单的表,只有一行有一个uiswitch。基本上,一旦用户打开开关,我想在第一行下面添加另一行。即使经过这里的许多线程,似乎没有什么工作正常。在最好的情况下,我可以添加另一行,但在新的部分,这不是我想要的。

这是我的一些代码:

LoadDidView:

  listOfItems = [[NSMutableArray alloc] init];
  listOfItems = [NSMutableArray arrayWithObjects:@"LINE 1" ,nil];    



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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; //try here diff styles
}

NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;


switch1 = [[UISwitch alloc] initWithFrame:CGRectZero];
[switch1 addTarget:self action:@selector(toggleEnabledTextForSwitch1onSomeLabel:) forControlEvents:UIControlEventValueChanged];

[cell addSubview:switch1];
cell.accessoryView = switch1;



return cell;

}

与我的开关相关的操作:

- (IBAction) toggleEnabledTextForSwitch1onSomeLabel: (id) sender {  
if (switch1.on) {

  [listOfItems insertObject:@"LINE 2" atIndex:0];
   [tblSimpleTable reloadData];

    }

 }

我在某处读到了我需要使用insertRowsAtIndexPaths:但我不知道我是否真的需要它,因为我没有对我的单元格进行任何编辑 - 只需将一个单元格添加到同一部分。

这是正确的方法吗?我在这做错了什么?

谢谢!

编辑:

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

    int count = [listOfItems count];
    if(self.editing) {
    count++;

}
    return count;
}

2 个答案:

答案 0 :(得分:0)

您是否更改了numberOfRowsInSection返回的值,然后是reloadData?

答案 1 :(得分:0)

由于我在你的代码中无法弄清楚,可能会有一些原因导致你遗漏了某些内容READ这个