2017-02-13 11 views
0

こんにちは私のアプリケーションでは、tablviewの説明付きprodcutsを表示する必要があります。これを達成するために、私はtablviewセルコンテンツビューで2つのsatckviewを追加しました。どちらのスタックビューにもラベルがあり、ラベルにはプロダクト名があり、別のラベルには説明があります。アプリの起動時には、デフォルトでアプリケーションセルの高さは100ですが、これまでにセルを選択すると、商品名とともにセルに完全な説明を表示したいのですが、セルの高さを変更する必要があります。誰でもこの方法を手助けしてください。動的にセルの高さを変更します。私を助けてください。テーブルビューのセルの高さを動的に変更するios

私は以下のアプローチでスタックビューラベルに詳細を示しましたが、セルの高さは変化していません。だから完全な説明を見ることができません。アプリケーションの制約を使用する

cell.productDescription.numberOfLines=50; 
cell.productDescription.lineBreakMode=NSLineBreakByCharWrapping; 
+0

この答えをチェックしhttp://stackoverflow.com/questions/ 41439786/aligning-multiple-runtime-generated-uilabels-in-auitableview/41440763#41440763プログラムで行う必要がある場合、またはセルフサイジングテーブルを使用する必要がある場合セルを表示する –

+0

@Naresh Gセルタップまたはテーブル見るロードすると自動的にセルの高さが調整されますか? –

+0

numberOfLinesを0に変更して最大制限を削除し、必要な数だけ行を使用することができます。 –

答えて

0

使用UITableViewDelegate方法

#pragma mark - UITableViewDelegate 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
1

ベストな方法。だから、あなたはheighforCellを管理する必要はありません。あなたがコーディングパートに行く場合は、テキストの高さを見つけなければならず、heightForRowAtIndexPathメソッドで設定する必要があります。ここで

は、文字列からの高さを取得するためのコードです:

書き込みあなたの heightForRowAtIndexPathメソッドのコード以下
-(float)getHeightForText : (NSString *)strText 
{ 
    UILabel *lbl = [[UILabel alloc] init]; 
    CGRect rect; 
    rect.origin = CGPointZero; 
    float width = YOUR_LABEL_WIDHT 
    rect.size = CGSizeMake(width, 3000); 
    lbl.font = MESSAGE_TEXT_FONT; 
    lbl.frame = rect; 
    lbl.text = strText; 
    lbl.numberOfLines = 1000; 
    [lbl sizeToFit]; 

    float height = lbl.frame.size.height; 
    return height; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [self getHeightForText:YOUR_TEXT]; 
} 
関連する問題