如何在UITableViewCell中添加多行文本字段?

时间:2015-11-03 08:26:11

标签: ios objective-c uitableview uitextfield uitextview

我试图在其单元格中使用多行文本字段开发UITableView。 我以编程方式创建了UITableView和单元格,此时我添加了一个普通的UITextField,但我真的想要什么类似应用聊天打字字段,所以当我输入更多字符时,它会自动增加其高度和UITableViewCell高度。 (请查看附图)

我的UITableView委托方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    {
        return 1;    //count of section
    }

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath      *)indexPath;
    {

        return 100;
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return [selectedTabFields count];
    }


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

        cell= [tableView1 dequeueReusableCellWithIdentifier:@"cell"];

        if (cell == nil)
        {
            cell = [[homeCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:MyIdentifier];
               cell.selectionStyle=UITableViewCellSelectionStyleNone;


                   [cell.contentView addSubview:[self getIntegerTextfield:indexPath.row]];

        }




        return cell;

    }

    //Integer Textfield
    -(UITextField *)getIntegerTextfield:(NSUInteger)index{

        UITextField *textField= [[UITextField alloc] initWithFrame:CGRectMake(15,40,cell.frame.size.width-30,cell.frame.size.height)];
        textField.placeholder=@"Text here";
        textField.tag=index;
        textField.delegate=self;

        textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
        textField.textAlignment=UITextAlignmentLeft;
        textField.font= [UIFont fontWithName:@"Helvetica-Neue Light" size:14];
        textField.textColor=[UIColor darkGrayColor];
        textField.backgroundColor=[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1];
        return textField;
    }

即使它尝试了这段代码,但它无法正常工作,当我运行此更改时,UITableView Cell为空。 Tried the same, but not working 请建议回答。

附加图片

Current Image

Whats app multiline

2 个答案:

答案 0 :(得分:2)

为什么在拥有第三方图书馆时重新发明轮子? This完全满足您的要求。只需使用UITextView代替。

编辑:因为您说上述内容因某些原因不适合您。您可以使用其他人,例如SlackhQTextViewController等。

答案 1 :(得分:0)

添加 getIntegerTextfield:(NSUInteger)索引{

textField.frame.size.height = (textField.text.length/a) * b;

a =您在xib中添加的textField的大小。 b = 1行文本字段的高度。