UITableViewCellStyleValue2 редактировать текст - заполнение формы, как - PullRequest
0 голосов
/ 09 июля 2011

Мне нужно создать форму, чтобы пользователь мог редактировать все ячейки таблицы (около 20).

Могу ли я сделать это с UITableViewCellStyleValue2? Если да, то как?

Или мне нужно создать подкласс UITableViewCell?

С точки зрения arquitect, возможно, лучше создать подкласс, но в любом случае мне нужно будет отредактировать таблицу, свойство textlabel.text.

Какой самый лучший способ? И как я могу это сделать?

Спасибо

RL

1 Ответ

0 голосов
/ 09 июля 2011

Я рекомендую добавить свои собственные представления в contentView ячейки, например:

- (UITableViewCell *)tableView:(UITableView *)tv
    cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    UITableViewCell *cell;
    {
        NSAutoreleasePool *arp = [[NSAutoreleasePool alloc] init];

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:nil];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.backgroundColor = [UIColor whiteColor];

        UILabel *lbl = [[UILabel alloc] init];
        lbl.frame = CGRectMake(3, 2, 160, tv.rowHeight - 4);
        lbl.backgroundColor = [UIColor clearColor];
        lbl.textColor = [UIColor blackColor];
        lbl.font = [UIFont boldSystemFontOfSize:16];
        [cell.contentView addSubview:lbl];
        [lbl release];

        if(indexPath.row == 0)
        {
            lbl.text = @"Cell Name";

            UITextField *textField;
            textField = [[UITextField alloc] initWithFrame:CGRectMake(170,
                        tv.rowHeight / 2 - 10, 100, 20)];
            textField.borderStyle = UITextBorderStyleNone;
            textField.textColor = [UIColor blackColor];
            textField.font = [UIFont systemFontOfSize:14];
            textField.placeholder = @"Placeholder";
            textField.backgroundColor = [UIColor clearColor];
            textField.autocorrectionType = UITextAutocorrectionTypeNo;
            textField.keyboardType = UIKeyboardTypeDefault;
            textField.returnKeyType = UIReturnKeyDone;
            textField.tag = indexPath.row;
            textField.delegate = self;

            [cell.contentView addSubview:textField];
            [textField release];
        }

        ...

        [arp drain];
    }

    return [cell autorelease];
}

Это просто демонстрация, но вы можете увидеть, где вам нужно расширить ее для поддержки дополнительных ячеек и т. Д.

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