2011-12-29 19 views
0

私のアプリでヘッダ付きのUITableViewを使用していて、テーブルビューのセルに文字列を追加したいと思います。ヘッダーの下にあるセルでは、文字列データを埋めたいと思っています。文字列のサイズに応じて、セルの高さを増やしたいと思います。iPhone:文字列ごとにセルの高さを動的に増やす方法

私はファイルを添付します。

私はlink1link2link3

をチェックしてきたが、私は私が望む答えを得ることができないのです。

私はイメージも添付します。

enter image description here

ラベルの指示は私のヘッダーを示し、次のセルに私は、文字列を追加します。

次に、文字列の長さに応じてセルの高さをどのように増やすことができますか?

thanxです。 THT特定の行の文字列の長さをチェックし、データソースARAYから、このメソッド内

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    //return appropriate value based on IndexPath.row 
} 

し、それに応じて高さを返す:

答えて

1

は、次のデリゲートメソッドを使用します。

2

あなたが言及しているリンクで述べたような方法に

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    //return appropriate value based on IndexPath.row 

    UIFont *font = textLabel.font; // use custom label's font 
    NSString *myText = @"your text for row at index path"; 
    CGSize size = [myText sizeWithFont:font forWidth:textLabel.frame.size.width lineBreakMode:UILineBreakModeWordWrap]; 
    return (size.height+20); //10 pixels space above the textlabel and below 10 pixels space 
} 

を実装します。

+0

私は 'cell.textLabel.text'を使ってセルの値を割り当てています。他に何か必要はありますか? – iPhone

+0

'cellForRowAtIndexPath'では、' cell.textLabel.text'を通してテキストをそのまま割り当てます。変更する必要はありません。私は自分の答えを編集しました。 Pl。 – Ilanchezhian

+0

'UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; 'この行にエラーメッセージEXC BAD ACCESSがあります。 – iPhone

0

セルサイズはこのコードを試してください。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


    NSString *text [email protected]"your String"; 

    CGSize constraint = CGSizeMake(CellContentWidth - (CellMargin * 2), 20000.0f); 

    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FontSize] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 

    CGFloat height = MAX(size.height, 44.0f); 


    return height + (cellMargin* 2); 

} 

このコードはセルラベルの高さに使用します。

NSString *text = [arr objectAtIndex:indexPath.row]; 

    CGSize constraint = CGSizeMake(labelwidth , 20000.0f); 

    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 

    CGFloat height = MAX(size.height, 44.0f); 

    cell.lbl3.frame=CGRectMake(X,Y ,W, height); 
関連する問題