简体   繁体   中英

how to Change the custom tableview cell height and a textview height according to its content in textview

i have created a custom cell with a textview. I need to expand the height of the textview and the height of the custom cell according to the content in the textview without using auto layout. can any one help me

单元设计 This is the code:

- (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 - is my textview

- (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;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM