-1

私はテーブルビューを持っており、各行には新しい行をクリックすると追加ボタンがあり、下に追加します追加行のテキスト フィールド。ここに私のコードがあります

-(void)buttonclicked:(UIButton *)sender
{

    UIButton *btn = (UIButton *)[self.view viewWithTag:sender.tag];
    NSLog(@"clickedCell=%i", btn.tag);

    [[NSUserDefaults standardUserDefaults]setValue:[NSString stringWithFormat:@"%i", btn.tag] forKey:@"btntag"];
    [self.choices insertObject:@"newrow" atIndex:btn.tag+1];


        [self.tableView reloadData];

}

およびテーブル ビュー メソッド

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


    static NSString *CellIdentifier = @"Cell";

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil)
     {


        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }



    UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
    button.tag = indexPath.row;
    button.frame = CGRectMake(280.0, 10, 25, 30.0); // x,y,width,height

    [button addTarget:self action:@selector(buttonclicked:) forControlEvents:UIControlEventTouchUpInside];
    [cell addSubview:button];

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:cell action:nil];
    longPress.delegate = self;
    [cell addGestureRecognizer:longPress];

    int count = 0;
    if(self.editing && indexPath.row != 0)
        count = 1;
    NSLog([NSString stringWithFormat:@"%i,%i",indexPath.row,(indexPath.row-count)]);

    // Set up the cell...
    if(indexPath.row == ([_choices count]) && self.editing)
    {
        cell.textLabel.text = @"ADD";
        return cell;
    }

    NSString *choice = [self.choices objectAtIndex:indexPath.row];

    cell.textLabel.text = choice;



    return cell;
}
4

1 に答える 1

0

このようにしてみてください。

1. position などのグローバル変数型整数を 1 つ取得します。

2.特定のボタンをクリックすると、-(void)buttonclicked:(UIButton *)sender メソッドがこのメソッドで呼び出され、btn.tag 値が position に割り当てられます。

3.その後、テーブルビュー cellForRowAtIndexPath メソッドでテーブルビューをリロードし、次のような条件を1つ取得します

if(position==indexpath.row)
{
//add your textfield here
}.
于 2013-03-15T06:18:39.863 に答える