2017-10-13 8 views
0

ImageViewは、アスペクトフィットのコンテンツモードを持つセルフサイズテーブルセル内にあります。 テーブルが完全に読み込まれると、画像自体が大きく見えますが、元の比率を維持したままセルの幅に収まるようにサイズが変更されます。 ただし、テーブルセルの高さは、アスペクトフィットのコンテンツモードが画像ビューに一度も適用されていない場合と同じ大きさです。セルフサイジングテーブルセル内のImageViewは、Aspect Fitが適用される前に画像の高さを使用します。

enter image description here

この画像では、赤はイメージ図であり、実際の画像の上および下のスペースは、私は避けるようにしようとしているものです。

私はフィルの局面にフィット縦横を交換するとき、これは同じセルは次のようになります。

enter image description here

これは私がイメージビューはの高さを利用しているように見えると言うとき、私が何を意味するかですAspect Fitの前の画像が適用されます。

ImageViewに制約や設定がありませんか? ご協力いただければ幸いです!

+0

セル内の画像ビューの高さに制約を設定しましたか? –

+0

これらの画像はどこから来ますか?それらはリモートサーバーからダウンロードされていますか、またはassets.xcassetsファイルにありますか? –

+0

イメージはURLからダウンロードされています。 – user3029918

答えて

0

イメージがサーバーからダウンロードされている場合は、ダウンロードに1秒か1分かかります。ユーザーがダウンロードにかかる時間は目に見えます。最高のユーザーエクスペリエンスは、画像をダウンロードする前に高さと幅を明示的に設定することです。第三者APIを使用して画像(フェイスブックまたはYouTube API)を取得している場合は、画像URLと画像の高さと幅が返されます。この方法で、セルの高さと幅を設定してから、画像のダウンロードやセルのサイズの変更を待たずに待つことができます。これが最良の方法です。高さと幅を明示的に設定することで、イメージビューに使用するコンテンツモードについて心配する必要はありません。明示的にそのセル内の画像ビューの高さと幅を設定している場合は、セルフサイジングUITableViewCellを使用することをお勧めします。私はこれが助けて欲しい!

最新のコメントが表示されました。返されるイメージに応じて、各セル内の各イメージビューのサイズを調整できます。イメージビューの固定高さを設定する必要はありません。そのセルにある画像に応じて、各セルの高さを変更することができます。イメージをダウンロードする前にこれを行うことをお勧めします。

ストーリーボードを使用している場合、これを行う1つの方法は、イメージビューの高さ制約のコンセントを作成することです。

関連する問題