3

私はUITableView3 種類のカスタム セルからロードしている iphone アプリケーションを持っています。さまざまな要素が含まれています。今、私はセルのメッセージコンテンツを取得し、そのサイズを見つけて定数を追加することでそれを行っています.しかし、メッセージが非常に大きい場合、コンテンツはセルの外側の部分に表示されます.私はこのようにしています `

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

` 正しいアプローチを見つけるのを手伝ってくれる人はいますか?

4

1 に答える 1

2

では、constrainedToSize:130として指定しています。1000.0fなど、より大きな値にして試してください。

于 2013-01-09T07:49:23.790 に答える