1

我在 aUITextView的所有单元格中都有 a 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;
}
4

3 回答 3

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;
}
于 2013-07-05T10:02:21.370 回答
0

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

您可以使用 标记UITextViewindexPath.row以便知道要从数组中加载哪个项目。

您可以根据文本视图的高度覆盖数组中的值。

然后在你的

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

现在你应该有符合你需要的高度。

于 2013-07-05T11:12:06.167 回答
0

将名为HPGrowingTextView的自定义不断增长的 TextView 添加到您的单元格。然后更改单元格的高度,如问题所示

根据文本量更改 UITableViewCell 高度

于 2013-07-05T10:02:17.777 回答