Web サービスから取得したコンテンツを表示するテーブルビューを使用するアプリに取り組んでいます。一部のセルでは、寸法が不明な画像を表示する必要がある場合があります。これを行うには、固定幅 (292pts) のセル内に UIImageView を配置します。次に、このように、それに応じてイメージビューの高さを調整します。
イメージビューの高さ = 292/イメージの幅*イメージの高さ
たとえば、730*1250 の画像がある場合、高さを 500 に設定して縦横比を維持し、画像全体を表示します。
ただし、セルの高さを設定する必要がある場合、これは問題になる可能性があります。画像はインターネットからダウンロードされるため、セルを作成する必要があるときに画像のダウンロードが完了していない可能性があります。したがって、画像がダウンロードされるまでセルの高さを判断できず、UI をそれまで待機させることもできないため、代わりにプレースホルダー画像を表示し、セルの高さはその高さに基づいています。
画像がダウンロードされたら、画像ビューに表示する必要があります。高さがプレースホルダー画像の高さと一致していれば問題ありません。それ以外の場合は、画像ビューの高さを調整して補正し、セルの高さも変更する必要があります。しかし、問題は、セルが作成されると高さを変更できないことです。
私が考えることができる唯一の解決策は、UIImage を保存し、セルをリロードすることです。次に、既に画像があるので、画像に基づいてセルの高さを設定できます。ただし、これは非常に非効率的なソリューションのようです。作成後にセルの高さを調整する方法はありますか? セルのフレームを変更しようとしましたが、何もしませんでした。作成後にセルの高さを変更する方法はありますか、それともリロードするしかありませんか?