在UITextView上输入文本时动态扩展UITableViewcell

时间:2013-07-05 09:47:56

标签: ios objective-c cocoa-touch

我在UITextView的所有单元格中都有一个UITableview。文本视图的高度动态增加。随着文本视图大小的增加,我想增加该单元格的高度。 我写的是

    -(BOOL)textView:(UITextView *)textView1 shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
    {

        NSLog(@"textTag%d",textView1.tag);

        NSString *stringToSave = [textView1.text stringByReplacingCharactersInRange:range withString:text];
        NSLog(@"Save me: %@", stringToSave);

     CGFrame*frame =textView1.frame;
        frame.size.height = textView1.contentSize.height;
        textView1.frame = frame;

//在这里我需要增加特定细胞的高点。

if([text isEqualToString:@"\n"])
    {
        [textView1 resignFirstResponder];
    }
    return  YES;
}

3 个答案:

答案 0 :(得分:1)

插入这些行:

//class variable, type float
newHeight = textView1.contentSize.height;
//class variable, type int
cellIndex = /*set index of your cell for which you want extended height*/
[yourTable reloadData];

以下这些行:

CGFrame*frame =textView1.frame;
        frame.size.height = textView1.contentSize.height;
        textView1.frame = frame;

并在heightForRowAtIndexPath方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == cellIndex)
    {
        return newHeight;
    }
    return regularHeigh;
}

答案 1 :(得分:0)

向您的单元格添加名为HPGrowingTextView的自定义增长TextView。 然后如问题

中所示更改单元格的高度

Change the UITableViewCell Height According to Amount of Text

答案 2 :(得分:0)

我认为您可以在NSMutableArray中映射单元格的高度。 该数组将包含您拥有的标准高度。

您可以使用UITextView标记indexPath.row,以便了解要从阵列加载的项目。

您可以根据textview的高度覆盖数组中的值。

然后在你的

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
 return [[mycellsizearray objectAtIndex:indexPath.row]floatValue];
}

现在你应该根据自己的需要达到高度。