如果从3种类型的自定义单元格加载表格,如何计算单元格的高度?

时间:2013-01-09 07:30:12

标签: iphone ios ipad

我有一个iphone应用程序,我从3种类型的自定义单元格中加载UITableView。其中包含不同的不同元素。现在我通过获取单元格的msg内容并找到它的大小并添加一个常量来实现它。但是当消息非常大时,内容显示在单元格的外部。我正在这样做`< / p>

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{  if(sarray==nil||[sarray count]==0)
    {

    }
    else
    {
          NSMutableDictionary *dicttable=[sarray objectAtIndex:indexPath.section];
          NSString *stri=[dicttable objectForKey:@"message"];
          NSString *type1=[dicttable objectForKey:@"type"];
          NSString *imagepath1=[dicttable objectForKey:@"image_path"];
         if([type1 isEqualToString:@"m"])
         {  
              if([imagepath1 isEqualToString:@"NA"])
              { 
                   UIFont *cellFont = [UIFont fontWithName:@"Helvetica Neue" size:15.0];
                   CGSize size1 = [stri sizeWithFont:cellFont constrainedToSize:CGSizeMake(300.0f, 130.0f) lineBreakMode:UILineBreakModeWordWrap];    
                   NSLog(@"%f",size1.height);
                   return size1.height+75;    
              }
              else
              {
                   UIFont *cellFont = [UIFont fontWithName:@"Helvetica Neue" size:15.0];
                   CGSize size1 = [stri sizeWithFont:cellFont constrainedToSize:CGSizeMake(300.0f, 130.0f) lineBreakMode:UILineBreakModeWordWrap];    
                   NSLog(@"%f",size1.height);

                   return size1.height+300;
              }
          }
          else
          {
               UIFont *cellFont = [UIFont fontWithName:@"Helvetica Neue" size:15.0];
               CGSize size1 = [stri sizeWithFont:cellFont constrainedToSize:CGSizeMake(300.0f, 130.0f) lineBreakMode:UILineBreakModeWordWrap];    
               NSLog(@"%f",size1.height);
               return size1.height+300;   
          }
     }
}

`任何人都可以帮我找到正确的方法吗?

1 个答案:

答案 0 :(得分:2)

constrainedToSize:中,您将其设为130.将其设为更大的值,例如1000.0f并尝试。