принять текстовый ввод от uitableviewcell - PullRequest
3 голосов
/ 26 мая 2011

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

enter image description here

я пробовал это Редактирование текста на месте в UITableViewCell?

но это не полное заполнение того, что я хотел.

когда я использую следующий код, я получаю вывод, который не похож на изображение выше.

UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(45, 0, cell.frame.size.width, cell.frame.size.height)];
    txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight;
    txtField.autoresizesSubviews=YES;
    [txtField setBorderStyle:UITextBorderStyleRoundedRect];
    [txtField setPlaceholder:@"Type Data Here"];

    if (cell == nil)
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
    [cell addSubview:txtField];

enter image description here

см. Ответ на вопросы 3 и 5.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 26 мая 2011

вам нужно добавить UITextField к представлению содержимого Соответствующая ячейка, в которой вы хотите текстовое поле.Вы выбираете нужную ячейку, просматривая ячейки indexpath.section и indexpath.row в cellForRowAtIndexPath:

Пример:

if(indexPath.section == CELL_SECTION) {
    if(indexpath.row == CELL_ROW_INDEX) {
      UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(5, 5, 320, 39)];
      txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight;
      txtField.autoresizesSubviews=YES;
      txtField.layer.cornerRadius=10.0;
      [txtField setBorderStyle:UITextBorderStyleRoundedRect];
      [txtField setPlaceholder:@"Type Data Here"];
      [cell.contentView addSubView:textField];
   }
}
1 голос
/ 26 мая 2011

Перво-наперво

  1. вам нужно сделать подкласс UITableViewCell.

  2. В этом классе будет TextField (TF)) как свойство для доступа к этому TF

  3. установить тег для этого TF во время его инициализации.

  4. в методе делегата tableView:celForRowAtIndexPath: получить этоTF по методу использования метода tf = [cell viewWithTag: YOUR_TAG];

  5. Теперь вы можете делать все, что хотите.

  6. Теперь предположим,Если вы хотите получить значение вне этого метода, то есть два способа его обойти

    a.создайте глобальную переменную и сохраните в ней значение

    b.Сначала найдите ячейку методом tableView по cellforRowAtIndexPath и повторите шаги 4 и 5

0 голосов
/ 26 мая 2011

Вам нужен пользовательский UITableViewCell с UITextfield в нем.Возможно, вы можете установить tag для textField для каждой ячейки, чтобы идентифицировать их.Вы также можете реализовать UITextFieldDelegate, если вы хотите некоторую проверку текста или что-то еще.Затем вы можете получить значение для textfield на основе тега.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...