0

首先,这可能吗?

我在 iPad 详细视图 cellAtIndexPath 方法中有如下代码:

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //NSLog(@"%s", __FUNCTION__);
    DetailCell *cell = nil;
    NSInteger tag = 0;
    NSString *text = nil;
    NSString *placeholder = nil;


    NSUInteger section = [indexPath section];
    switch (section)
    {
        case TitleSection:
        {
            cell = [self titleTextField];
            text = ...
            tag = ...
            placeholder = @"Title";
            break;
        }
        case UserSection:
        {
            if ([indexPath row] == 0) {

                    cell = [self usernameTextField];
                    text = ....
                    tag = ....
                    placeholder = ...
                    break;
            } else {

                    cell = [self passwordTextField];
                    text = ....
                    tag = .....
                    placeholder = ...
                    break;
            }


        }
        case CompanySection:
        {
            switch ([indexPath row]) {
                case 0:
                    cell = [self companyTextField];
                    text = .......
                    tag = ....
                    placeholder = ......
                    break;
                case 1:

                    break;
                case 2:

                    break;

            }
            break;
        }

        case NotesSection:
        {
            cell = [self notesTextView];
            text = ...
            tag = ...
            placeholder = @"Tap to Enter some Notes";
            break;
        }
    }



    UITextField *textField = [cell textField];
    [textField setTag:tag];
    [textField setText:text];
    [textField setPlaceholder:placeholder];

    return cell;

我希望 Notes 部分成为 UITextView 类,而所有其他部分都是 UITextField 类。

这一定是以前做过的,但我在这里找不到参考。请指出我正确的方向..

4

1 回答 1

0

我通过子类化单元解决了这个问题:

CGRect rect = CGRectInset(bounds, 20.0, 10.0);
    textField = [[UITextField alloc] initWithFrame:rect];


    [textField setReturnKeyType:UIReturnKeyNext];

    //  Make the clear button appear automatically.
    [textField setClearButtonMode:UITextFieldViewModeWhileEditing];
    [textField setBackgroundColor:[UIColor clearColor]];
    [textField setFont:[UIFont fontWithName:@"Arial" size:18]];
    [textField setOpaque:YES];



    textView = [[UITextView alloc] initWithFrame:bounds];

    //  Set the keyboard's return key label to 'Next'.
    //
    [textView setReturnKeyType:UIReturnKeyNext];


    [textView setScrollEnabled:YES];
    [textView setBackgroundColor:[UIColor clearColor]];
    [textView setFont:[UIFont fontWithName:@"Arial" size:18]];
    [textView setOpaque:YES];


    [[self contentView] addSubview:textField];
    [self setTextField:textField];

    [[self contentView] addSubview:textView];
    [self setTextView:textView];



and then looking for specific sections of my table in cellForRowAtIndexPath:


case CompanySection:
        {
            switch ([indexPath row]) {
                case 0:
                    cell = [self companyTextField];
                    text = [entity company];
                    tag = EntityCompany;
                    placeholder = @"Company";
                    break;
                case 1:...

                case 2:...

                case 3:...
                    cell = [self emailTextField];
                    text = [entity emailAddress];
                    tag = EntityEmail;
                    placeholder = @"Email";
                    break;
            }
            break;
        }

        case NotesSection:
        {

            cell = [self notesTextView];
            text = [entity notes];
            tag = EntityNotes;
            //placeholder = @"Tap to Enter some Notes";
            break;
        }

希望这可以帮助某人..

于 2012-11-09T01:37:44.317 回答