2017-01-28 8 views
0

tableViewには、カスタムプロトタイプcellが1つあります。このcellにはlabels(タイトル、価格、詳細)の3つがあり、それぞれがCoreDataを使用してテキストを読み込むため、高さは一定ではありません。

heightForRow atIndexPathは、cellForRow atIndexPathより前に実行されるため、すべてのセルに対して1つの高さしか設定できません。しかし、私はそれらのすべてが異なるサイズを持つ必要があります。
私が試したのはcellForRow atIndexPathです。ラベルの高さはすべてtableView.rowHeightに届きます。残念ながら、すべてのセルが同じ高さになるように設定します。

質問: 内部にすべてのラベルを表示するために必要なスペースの数に応じて、各セルの高さを個別に設定する方法や方法はありますか?セルの高さをコンポーネントのロード後、表示する前に設定する方法はありますか?

+0

インターネットからのアプローチを試しましたか? –

+0

これはSOのiOSタグで最も人気のある質問の1つです。セルの自動寸法を設定する方法を検索すると、答えが見つかります。 –

+0

実際、私は2人で説明された研究を試みましたが、満足できる答えが見つかりませんでしたので、そこに私の質問があります。 – mcgtrt

答えて

0

やっロードビューでこれを試してみてください、私が作ったもの

self.tableView.rowHeight = UITableViewAutomaticDimension; 

self.tableView.estimatedRowHeight = 44.0; // set to whatever your "average" cell height is 
+0

残念ながら、私の場合は答えではありませんでした。それは、セルの高さをほぼ全画面に伸ばした。ストーリーボードの制約を調べたところ、プロトタイプのセルでrowHeightをそれほど大きくしていないものがあればチェックしましたが、そうではありませんでした。彼らがなぜそんなに大きくなったのかまだ分かりません。 – mcgtrt

+0

@mcgtrtあなたのテーブルビューに制約を表示してください。 – rv7284

0

た:
- (セルのコンテンツビューにすべてのアイテムの国境)セット最初から制約
- 使用する@ rv7284により示唆されるように:
tableView.estimatedRowHeight = 150 tableView.rowHeight = UITableViewAutomaticDimension
viewDidLoadではなく、viewWillAppearにあります。
すべてのラベルはテキストを読み込んだ後に幅と高さを持ち、RAMに配置されます。

関連する問題