2

スタイル「Left Detail」のプロトタイプ セルを含むテーブル ビュー コントローラーがあります。

-私のviewDidLoad()ではself.tableView.estimatedRowHeight = 40self.tableView.rowHeight = UITableViewAutomaticDimension多くのソリューションがそうしているように言っています。ただし、詳細ラベルが大きくなりすぎると (説明セルのように)、セルがテキストと共に大きくなりません。

-viewDidAppear(animated:) にもデータをリロードしようとしましたが、役に立ちませんでした。

-現在、heightForRowAtIndex関数には何もありませんが、それも設定しようとしましたが、問題は解決しませんでした.

-セルにデータが入力された後、 cellForRowAtIndexPath で cell.sizeToFit() も試しました。

明らかな何かが欠けていますか?または、セルの高さを制限している「左の詳細」スタイルに何かがありますか?

4

1 に答える 1

0

私が認識している明らかな何かが欠けているわけではありませんが、組み込みのセル スタイルが関係するエッジ ケースに遭遇する可能性があります。自動サイズ設定にはいくつかの問題があり、ほとんどの場合、組み込みのスタイルでは機能しますが、特定のケースでは失敗する可能性があります。

これは、カスタム セル スタイルの場合とは異なる方法で組み込みスタイルがラベルと制約を管理する方法の副作用です。デバッガーで組み込みセルのコンテンツ ビューを調べると、その制約配列は空です。

1 つの極端なケースとして、組み込みラベルの 1 つがセルに不要な場合、Apple はセルからそのビューを完全に削除して最適化します。そのセルが再利用され、ラベルを再度追加する必要がある場合、最初に発生した制約は更新されません。両方のラベルに常にテキストが含まれるようにすることで、その特定の問題を回避することができたため、ビューが削除されることはありませんでした。

絶対に含める必要はありませんheightForRowAtIndexPath。それを削除してから、組み込みスタイルの問題を で回避できるかどうかを確認してくださいcellForRowAtIndexPath。そうでない場合は、Left Detail スタイルを模倣するカスタム セルを使用する必要がある場合があります。

いずれにせよ、Apple はこれらの問題の多くを修正し、ビルトインのスタイルの自己サイジングがはるかに使いやすくなったため、「Left Detail」の問題を示す小さなサンプル プロジェクトを含むバグ レポートを提出することをお勧めします。

于 2016-02-16T23:30:50.847 に答える