2013-08-05 6 views
1

В настоящее время я пытаюсь дать пользователю возможность редактировать содержимое нескольких ячеек. После обновления данные будут отправлены в веб-службу.Как сделать ячейку редактируемой

Хорошо, сейчас, насколько я читал, есть только строки «удалить» и «добавить». Кажется, я не могу найти руководства или руководства по редактированию содержимого ячеек (ячеек).

Ваши предложения и/или советы очень ценятся.

if (editingStyle == UITableViewCellEditingStyleDelete) { 
    // Delete the row from the data source 
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 
else if (editingStyle == UITableViewCellEditingStyleInsert) { 
    // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
} 
+1

Это не то, как вы пишете Xcode. –

ответ

3

Вы не можете редактировать содержимое ячейки напрямую. Если вам нужно отредактировать контент, тогда добавьте UITextField или UITextView в ячейку в качестве подзаголовка. а затем получить к ним доступ.

EDIT: Вы можете добавить текстовое поле, как показано ниже:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *cellIdentifier = @"cellIdentifier"; 

    UITableViewCell *cell; 
    cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (!cell) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; 

     [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

     // ADD YOUR TEXTFIELD HERE 
     UITextField *yourTf = [[UITextField alloc] initWithFrame:CGRectMake(0, 5, 330.0f, 30)]; 
     [yourTf setBackgroundColor:[UIColor clearColor]]; 
     yourTf.tag = 1; 
     yourTf.font = [UIFont fontWithName:@"Helvetica" size:15]; 
     yourTf.textColor = [UIColor colorWithRed:61.0f/255.0f green:61.0f/255.0f blue:61.0f/255.0f alpha:1.0f]; 
     yourTf.delegate = self; 
     [cell addSubview:yourTf]; 

    } 

    // ACCESS YOUR TEXTFIELD BY REUSING IT 
    [(UITextField *)[cell viewWithTag:1] setText:@"YOUR TEXT"]; 

    return cell; 
} 

Реализовать делегатов UITextField, а затем вы можете редактировать содержимое ячейки, используя этот UITextField.

Надеюсь, это поможет вам.

+0

Это имеет смысл. Я попробую это в первую очередь. –

+0

Уверен, и ответьте на этот вопрос, если он решает вашу проблему. –

+0

Пока нет. Есть ли более короткий способ сделать это на статической таблице без создания пользовательской ячейки? –

Смежные вопросы