如何根据textview中的内容更改自定义tableview单元格高度和textview高度

时间:2016-02-10 05:03:37

标签: ios objective-c

我创建了一个带有textview的自定义单元格。我需要根据textview中的内容扩展textview的高度和自定义单元格的高度,而不使用自动布局。任何人都可以帮助我

Cell design    这是代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return sendername.count;
}

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

static NSString *CellIdentifier1 = @"MenuCtrl";

tsecureMsgConCell *cell = [tabVieConv dequeueReusableCellWithIdentifier:CellIdentifier1];

if (cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MsgConCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}

cell.userName.text       = [sendername objectAtIndex:indexPath.row];
cell.msgContentTxView.text     = [msgContents objectAtIndex:indexPath.row];


NSString * sentDateCell  = [msgSenddate objectAtIndex:indexPath.row];
NSString * replyDateCell = [msgRevidate objectAtIndex:indexPath.row];
thredIdCell              = [TSecureMsgId objectAtIndex:indexPath.row];

if ([sentDateCell isEqualToString:@"NULL"])
{
     cell.dateLbl.text = [msgRevidate objectAtIndex:indexPath.row];
     cell.timeLbl.text = [msgRecTime objectAtIndex:indexPath.row];
     cell.imgVew.image = [UIImage imageNamed:@"recive.png"];
}

else if ([replyDateCell isEqualToString:@"NULL"])
{
    cell.dateLbl.text = [msgSenddate objectAtIndex:indexPath.row];
    cell.timeLbl.text = [msgSendTime objectAtIndex:indexPath.row];
    cell.imgVew.image = [UIImage imageNamed:@"sent.png"];
}

return cell;

}

msgContentTxView - 是我的textview

1 个答案:

答案 0 :(得分:0)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger row = indexPath.row;
    if (row != NSNotFound)
    {


        if ([exapmlestring length] > 0)
        {
            CGFloat padding = 17.0f;

            CGFloat labelWidth = self.tableview.bounds.size.width - padding*2;
            NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                                  [UIFont fontWithName:@"HelveticaNeue" size:17.0], NSFontAttributeName,
                                                  nil];

            NSAttributedString *text = [[NSAttributedString alloc] initWithString:exapmlestring attributes:attributesDictionary];
            NSStringDrawingOptions options = NSStringDrawingUsesLineFragmentOrigin;

///size
            CGRect boundingRect = [text boundingRectWithSize:CGSizeMake(labelWidth, CGFLOAT_MAX)
                                                     options:options
                                                     context:nil];


            boundingRect.size.height = boundingRect.size.height + 100;

            return (CGFloat) (ceil(boundingRect.size.height) + padding*2);
        }
    }

    return 0;
}