2016-05-08 4 views
1

私はUIStackViewsとautolayoutを使用して動的な高さの行を作成しようとしています。以下は私のUITableViewCell xibです。UIStackViewsを使用した動的なUITableViewセルの高さ

enter image description here

だから、あなたが見ることができるようにそれは内部のすべてのstackViewsを持っています。推定された行の高さとデリゲート関数を使って試しました。しかし、何もうまくいかなかった。

ここに私の疑問があります。

1)動的な高さの行を設計する際の注意点。 2)私の現在のシナリオでは何が間違っていますか。

答えて

1

Renjithは、あなたが推定行の高さを見つける前に、あなたのためのヒント...

がある

あなたは簡単にUIStackView.hereを使用せずに、この問題を扱うことができ、この場合のためにUIStackViewを使用するnecessoryではありませんautolayoutトリックを適用する必要があります。

ie.1そのUIImageview.Andに高さと幅の制​​約を追加するだけで、UIImageViewの先頭スペースと先頭スペースを追加します。

2.Thenセル内の最初のラベルの末尾スペースと先頭スペースを追加します。そして、先頭をUIImageViewに揃えます。

3.第2ラベルの先頭、先頭、末尾のスペースを追加します。

4.カレンダーイメージの高さと幅を追加し、2番目のラベルに先頭スペースを追加し、2番目のラベルに右揃え(カレンダーイメージから2番目のラベルに右クリックしてドラッグ)を追加します。

5. 3番目のラベルには、2番目のラベルにトップスペースを追加するか、カレンダーイメージに中央揃えを付けます。末尾のスペースをコンテナとボトムスペースにも追加します。

6.4番目のラベル(uiimageviewの下にあります)。カレンダーイメージに後続スペースを追加し、カレンダーイメージに中央揃えします。先頭スペースをコンテナに追加します。

7.大量のデータを保持するラベルの行数が「0」であることを確認します。

これで、すべてのコンポーネントがxとyの値に満足しました。テーブルビューの推定行高さを見つけるのに役立ちます。

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewAutomaticDimension; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewAutomaticDimension; 
} 

ここで、テーブルビューは自動的に選択できます。あなたはアイデアを持っているといいですね。

+1

解決策は正しい結果を生成しますが、質問には答えません。スタックビューを必要とするかどうかは、特にスタックビューが既存のSDKオプションの集大成に過ぎないと考える場合は、無関係です。スタックビューで行うことができることは、スタックビューなしでも実行できると言うのは間違いありません。スタックビューを使用して自動ディメンションを取得する方法の問題は、依然として適用されます。 –

関連する問題