2017-04-20 15 views
0

私はスタティックセルをtableviewに持っています。それらの中には、左に1つのイメージビューと1つのラベルの右側があります。私はまた、自動レイアウトを使用しています。私の問題は:イメージサイズはUITableviewセルのすべてのデバイスで同じ

すべてのデバイスで同じように見えます。つまり、画像サイズがiphone 5の場合は50 X 50、iphone 6plusの場合は100 X 100と表示されます。

+0

正しく設定すると、50pxの画像はすべてのiphoneで50ピクセルと表示されます。品質はiPhoneの品質に合わせて増加しますが、画像のサイズは同じでなければなりません。(私があなたを正しく理解していると仮定して) – logixologist

+0

1つのオプションは、あなたのセルの後端および先頭と下端の拘束を設定することです。 –

+0

アセットフォルダに画像を追加しましたか?または画像ビューに高さと幅の制​​約を設定しましたか? – KKRocks

答えて

1

このセルではどのような制約がありますか?高さの制限を50に設定している場合、画像は常に50になります。

イメージは、デバイスごとに特定のサイズ(50,70,100など)にすることをお勧めします。これを行う方法は、画像をセルの上、下、左から距離を置いて特定のアスペクト比にすることです。

次に、tableView委任メソッドを使用してセルのサイズを決定します。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 

//if iphone 5 return x (e.g 50) 
//if iphone 6 plus return y (e.g 100) 

} 

あなたのセルサイズ(あなたのイメージが大きい場合は、あなたのイメージが小さく、大きければ小さくする必要が推測IM)を変更し直し、あなたのイメージオート自動的

上記の制約を使用してサイズを変更します。この方法
+0

これは最も近い答えです。 AutoLayoutを使用して上、下、下、および先行の制約を設定し、^ tableView.heightForRowデリゲートメソッドを使用すると、アプリケーションを実行しているデバイスに合わせてimageViewのサイズを変更できますが、@Khalid Afridiの答えにも大きな情報がありますあなたのimageViewがサイズ変更されていない理由 –

1

imageViewサイズを50x50に設定すると、プラスのiPhoneで50x50が表示されます。あなたは、網膜スクリーンに対して1x、2x、3xの画像を考えています。画像の表示サイズは変更されません。詳細については、あなたがこの回答what is pixel and points in iPhone

を読むことができますが、iPhoneなどの大きなデバイスでイメージビューのサイズを変更したいプラス、あなたはあなたが画面に基づく制約のを、設定削除または追加することができる場所のサイズのクラスを使用する必要がある場合サイズまたは向き

関連する問題